У меня есть вектор, содержащий wstrings. Я хочу видеть, имеет ли одна из строк такое же содержимое, как строка в переменной:
std::wstring m_MyString;
void CheckExists() {
std::vector< std::wstring > list = ...
for (std::vector< std::wstring >::iterator it = list.begin(); it != list.end(); ++it) {
if (*it == m_MyString) {
...
break;
}
}
}
Тем не менее *it == m_MyString
не похоже на равенство строк — это не входит в if
когда есть соответствующая строка в векторе. Я думаю, что это делает равенство указатель / адрес. Как мне заставить это сделать базовое равенство строк?
Оказывается, проблема была в том, что строка в переменной была завершена нулем, а строки в векторе — нет. Таким образом, они выглядели одинаково, но на самом деле не были одинаковыми.
Других решений пока нет …