使用C ++中的map获取具有指定键的索引

时间:2018-10-12 04:27:12

标签: c++ stl

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.

一旦找到地图中的键,如何找到索引?

1 个答案:

答案 0 :(得分:2)

地图中没有索引,只有迭代器。

要获取迭代器,您可以执行以下操作:

std::map<int, int>::iterator it = m.find(45);

如果您真的想找到“距离”,可以执行以下操作:

auto dist = std::distance(m.begin(),m.find(45));