Nếu tôi có một cấu trúc nhưTruy cập vào giá trị bản đồ bằng chỉ số
std::map<string, int> myMap;
myMap["banana"] = 1;
myMap["apple"] = 1;
myMap["orange"] = 1;
Làm thế nào tôi có thể truy cập myMap [0]?
Tôi biết rằng bản đồ sắp xếp nội bộ và tôi ổn với điều này, tôi muốn nhận được một giá trị trong bản đồ theo chỉ mục. Tôi đã thử myMap [0] nhưng tôi nhận được lỗi:
Error 1 error C2679: binary '[' : no operator found which takes a right-hand operand of type 'int' (or there is no acceptable conversion)
Tôi nhận ra tôi có thể làm một cái gì đó như thế này:
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;
}
}
Nhưng chắc chắn đây là cực kỳ không hiệu quả? Có cách nào tốt hơn?
tôi thấy bây giờ ... Bạn muốn truy cập ngẫu nhiên. Chỉ số 0 chỉ là một ví dụ, không phải là mục tiêu thực tế. –