wstring迭代器输出的等式比较不起作用

时间:2013-05-31 09:47:37

标签: c++ string vector equality

我有一个拿着绳索的矢量。我想看看其中一个字符串是否与变量中的字符串具有相同的内容:

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。我认为它正在做指针/地址相等。如何让它做基本的字符串相等?

1 个答案:

答案 0 :(得分:0)

原来问题是变量中的字符串是以null结尾的,而矢量中的字符串则不是。所以他们看起来一样,但实际上并不相同。

相关问题