<分区>
如果我的 map 的键是动态生成的,有没有办法在特定的偏移量处获取键值,比如第二个键值对的键值?我试图获取 map 的随机键值,所以我只是生成了一个随机数,并想用这个偏移量提取相应的键。我不知道这是否是实现这一目标的方法。或者有什么正规的方法吗?谢谢!
<分区>
如果我的 map 的键是动态生成的,有没有办法在特定的偏移量处获取键值,比如第二个键值对的键值?我试图获取 map 的随机键值,所以我只是生成了一个随机数,并想用这个偏移量提取相应的键。我不知道这是否是实现这一目标的方法。或者有什么正规的方法吗?谢谢!
最佳答案
您可以使用 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),因此如果您想要更快的方法,您应该考虑以不同的结构存储数据。
关于C++ std::map:获取特定偏移量处的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49764841/