簡體   English   中英

訪問包含向量對的映射的值

[英]Accessing values of a map that containing a vector pair

我聲明了一個包含向量對的地圖,例如

typedef vector<pair<string,int>> vectorPair;
map<string,vectorPair> mapName;

我一直在嘗試使用迭代器遍歷地圖,但我對如何從 Iterator->first 或 Iterator->second 訪問向量對感到困惑。 有一個更好的方法嗎?

這是遍歷地圖的一種整潔的方式:

for (auto x : mapName)
{
    vectorPair& vp = x.second;        // or auto&
    ...
}

Wandbox現場演示

我不完全知道你想要實現什么,但我假設你有一個看起來像這樣的結構:

for(auto i = mapName.begin(); i != mapName.end(); i++)
{

}

在那個循環中你只是想訪問向量? 這將使用i->second 如果您不喜歡這種語法,您可以隨時使用引用(類似於auto &vec = i->second然后只使用vec之后)。

如果要迭代向量本身中的對,則需要使用以下內容:

for(auto i = mapName.begin(); i != mapName.end(); i++)
{
    for(auto j = i->second.begin(); j != i->second.end(); j++)
    {

    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM