访问地图的一个"item"

Accessing one "item" of a map

本文关键字:一个 item 地图 访问      更新时间:2023-10-16

我想访问我map<wstring,wstring>的一个"项目"。

但这不起作用:

for (unsigned int i=0;i<m_ValidCharacterTranslations.Content().size();i++)
{
    wstring wsFirst = &m_ValidCharacterTranslations.Content()[i]->first;
    wstring wsSecond = &m_ValidCharacterTranslations.Content().at(i)->second;
    //do something with these 2 wstrings
}

我在最后一行得到的错误是:

No binary operator accepts the right-handed operand of type 'unsigned int'.

我的类声明如下:

clsTranslations m_ValidCharacterTranslations;
class clsTranslations : public CBaseStructure
{
private:
    map<wstring,wstring> m_content;
protected:
    virtual void ProcessTxtLine(string line);
public:
    map<wstring,wstring> &Content();
    void LoadTranslations(string file);
};

有人可以告诉我如何获得这些值吗?

我想遍历地图并使用第一个和 地图的第二个字符串。

C++11:

for (auto& kvpair : somemap) {
    cout << kvpair.first << " has value " << kvpair.second << std::endl;
}

C++11 之前:

for (map<wstring,wstring>::iterator it = somemap.begin(); it != somemap.end(); it++) {
    cout << it->first << " has value " << it->second << std::endl;
}

您可以访问第一个和第二个地址,而不是值。