訪問映射值如果我有一個像通過索引
std::map<string, int> myMap;
myMap["banana"] = 1;
myMap["apple"] = 1;
myMap["orange"] = 1;
如何訪問MYMAP結構[0]?
我知道地圖內部排序,我很好,我想通過索引得到地圖中的值。我試過MYMAP [0],但我得到的錯誤:
Error 1 error C2679: binary '[' : no operator found which takes a right-hand operand of type 'int' (or there is no acceptable conversion)
我知道我可以做這樣的事情:
string getKeyAtIndex (int index){
map<string, int>::const_iterator end = myMap.end();
int counter = 0;
for (map<string, int>::const_iterator it = myMap.begin(); it != end; ++it) {
counter++;
if (counter == index)
return it->first;
}
}
但可以肯定,這是效率非常低?有沒有更好的辦法?
我現在看到的...你想隨機訪問。索引0只是一個例子,而不是實際的目標。 –