Мне нужно сопоставить контейнеры:
map<string, char *> mOServs;
map<LPWCH, int> mymap;
Я делаю запрос sqlite3 и пытаюсь обновить эти две карты с результатами:
sprintf_s(query,1024,"SELECT oservname FROM OServs;");
rc = sqlite3_get_table(db, query, &results, &nrow, &ncol, &zErrMsg);
cout << "query: " << query << endl;
if (rc != SQLITE_OK) {
fprintf(stderr, "Error Selecting oserv name: %s\n", zErrMsg);
sqlite3_free_table(results);
sqlite3_close(db);
return -1;
}
int X = 0;
WCHAR somevar[1024];
while(X < nrow)
{
mbstowcs(somevar, results[X+1], 1024 );
wcstombs(output, somevar, 1024);
mOServs[output] = "offline";
mymap[somevar] = X;
X++;
}
Каким-то образом mOServs, кажется, заполняется правильно,но с mymap он содержит только последнюю запись запроса в конце цикла.Я делаю что-то неправильно?
Я пытаюсь сохранить все результаты запроса на карте, и поэтому я могу выполнить mymap.find (LPWCH), чтобы определить, есть ли запись в таблице или нет.