我想访问地图矢量中的特定元素。我的代码如下:
#include <iostream>
#include <vector>
#include <map>
using namespace std;
int main() {
std::vector<map <string, int> > vecOfMaps;
map <string, int> myMap;
for (int j = 0; j < 10; j++) {
myMap["alpha"] = j;
myMap["beta"] = j*2;
vecOfMaps.push_back(myMap);
}
int start = 3;
int end = 5;
int counter = start;
for (std::vector<map <string, int> >::iterator vecIter = vecOfMaps.begin()+start; vecIter != vecOfMaps.begin()+end; ++vecIter) {
map<string, int>::iterator mapIter = vecIter.find("alpha");
cout << "\n vecElement " << counter << " mapString " << mapIter->first << " mapInt " << mapIter->second;
counter++;
}
return 0;
}
但是,此代码会出现以下编译错误:
错误:'std :: vector,int&gt; &gt; :: iterator'没有名为'find'的成员 map :: iterator mapIter = vecIter.find(“alpha”);
如何在地图矢量中找到地图内的条目?
答案 0 :(得分:3)
迭代器就像一个指向向量的指针,所以使用箭头,即间接,表示法:
vecIter->find("alpha");