我有一个拿着绳索的矢量。我想看看其中一个字符串是否与变量中的字符串具有相同的内容:
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
。我认为它正在做指针/地址相等。如何让它做基本的字符串相等?
答案 0 :(得分:0)
原来问题是变量中的字符串是以null结尾的,而矢量中的字符串则不是。所以他们看起来一样,但实际上并不相同。