map<int, int> m;
m[-1]=1;
m[45]=100;
m[20]=3;
// -1<20<45. So The index of (-1, 1) is 0; (45, 100) is 2; (20, 3) is 1;
// "find" function returns the iterator, but how to know its order?
number = m.find(45) - m.begin(); // This is apparently not correct.
一旦找到地图中的键,如何找到索引?
答案 0 :(得分:2)
地图中没有索引,只有迭代器。
要获取迭代器,您可以执行以下操作:
std::map<int, int>::iterator it = m.find(45);
如果您真的想找到“距离”,可以执行以下操作:
auto dist = std::distance(m.begin(),m.find(45));