如何在地图矢量内的地图上使用find()?

时间:2013-12-16 02:57:42

标签: c++ vector stdmap

我想访问地图矢量中的特定元素。我的代码如下:

#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”);

如何在地图矢量中找到地图内的条目?

1 个答案:

答案 0 :(得分:3)

迭代器就像一个指向向量的指针,所以使用箭头,即间接,表示法:

vecIter->find("alpha");