2013-12-16 67 views
3

我想訪問地圖矢量中的特定元素。下面是我的代碼,它給編譯錯誤。 如何在地圖向量中查找地圖?使用在地圖矢量內的地圖中查找

#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 ::矢量,INT>>:迭代」沒有名爲「查找」的 地圖:迭代mapIter = vecIter.find( 「阿爾法」)部件;

+0

我想查找是容器的方法,而不是迭代器。也許嘗試尊重? – peterh

回答

3

迭代器的作用就像一個指向矢量,所以使用arror,即,間接,符號:

vecIter->find("alpha");