我声明了一个包含像这样的向量对的地图
typedef vector<pair<string,int>> vectorPair;
map<string,vectorPair> mapName;
我一直在尝试使用迭代器遍历地图,但对于如何从Iterator-> first或Iterator-> second访问向量对感到困惑。有更好的方法吗?
答案 0 :(得分:1)
答案 1 :(得分:0)
我不完全知道您要实现的目标,但是我认为您拥有一个看起来像这样的构造:
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++)
{
}
}