У меня есть map
из vector
из char
и vector
из strings
. Время от времени, если раньше я видел вектор символов, я бы хотел добавить строку в мой вектор строк. Ниже приведен мой код для этого.
map<vector<char>, vector<string>>::iterator myIter = mMyMap.find(vChars);
if(myIter != mMyMap.end()) {
vector<string> vStrings = myIter->second;
mMyMap.erase(myIter);
vStrings.push_back(some_other_string);
mMyMap.insert(pair<vector<char>, vector<string>>(vChars, vStrings));
return TRUE;
}
Вызов mMyMap.erase()
, похоже, застрял в бесконечном цикле. Я предполагаю, что это потому, что vStrings
не получает глубокую копию myIter->second
.
Нужно ли инициализировать vStrings
как:
vector<string> vStrings(myIter->second);
Или как правильно исправить?