如何获取C ++地图中元素的索引

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (15)

在我的C++应用程序中我有一个std::mapmyMap,我想使用myMap.find(key)myMap[key]。但是,我也想在地图中得到这个元素的索引。

std::map<string, int> myMap;
// Populate myMap with a bunch of items...
myElement = myMap["myKey"];
// Now I need to get the index of myElement in myMap

有好的方法吗?

提问于
用户回答回答于

std::map没有真正的索引,而是有一个键/值对的迭代器。这与索引类似,它表示集合中的排序位置,但它不是数字。要获取键/值对的迭代器,请使用该find方法

std::map<string, int>::iterator it = myMap.find("myKey");
用户回答回答于

我来这里是为了寻找这个答案,但我发现这个距离函数需要2个迭代器,并返回一个索引。

cout << distance(mymap.begin(),mymap.find("198765432"));

希望这有帮助

扫码关注云+社区