如果我的地图的键是动态生成的,有没有办法获得特定偏移量的键值,比如第二个键值对的键值?我试图得到一个地图的随机键值,所以我只生成一个随机数,并希望用这个偏移量提取相应的键。我不知道这是否是实现这一目标的方式。或者有正常的方法吗?谢谢!
答案 0 :(得分:2)
您可以使用std::next
。
std::map<int, int> myMap;
auto itAtOffset = std::next(myMap.begin(), offset);
如果您没有C ++ 11,则可以改为使用std::advance
。
std::map<int, int> myMap;
std::map<int, int>::iterator itAtOffset = myMap.begin();
std::advance(itAtOffset, offset);
请注意,复杂度为O(N),因此如果您想要更快的方法,则应考虑将数据存储在不同的结构中。