【发布时间】:2013-07-25 15:28:31
【问题描述】:
我的 C++ 应用程序中有一个名为 myMap 的 std::map,我想使用 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::distance(std::begin(myMap), myMap.find("myKey"))。 -
我很好奇:你为什么要这样做?
-
@SZH:在我看来,实现替换密码最明显的概念是将“前”字符映射到“后”字符,这不需要索引。为什么需要一个索引?
-
您是否考虑过使用
std::map<char, char>代替?