C++ C++;映射:在特定偏移处获取密钥

C++ C++;映射:在特定偏移处获取密钥,c++,stdmap,C++,Stdmap,如果我的地图的键是动态生成的,有没有办法在特定偏移量处获得键值,比如第二个键值对的键值?我试图得到一个地图的随机键值,所以我只生成了一个随机数,并想用这个偏移量提取相应的键值。我不知道这是否是实现这一目标的途径。还是有正常的方法?谢谢 您可以使用 请注意,复杂性是O(n),所以如果你想要更快的方法,你应该考虑把数据存储在不同的结构中。听起来像XY问题,为什么你需要一个映射,如果你用偏移量访问?我不知道是否有其他方法得到随机键值,也许不通过偏移来访问?但我想我必须使用地图,地图是按键排序的,所以当

如果我的地图的键是动态生成的,有没有办法在特定偏移量处获得键值,比如第二个键值对的键值?我试图得到一个地图的随机键值,所以我只生成了一个随机数,并想用这个偏移量提取相应的键值。我不知道这是否是实现这一目标的途径。还是有正常的方法?谢谢

您可以使用


<>请注意,复杂性是O(n),所以如果你想要更快的方法,你应该考虑把数据存储在不同的结构中。

听起来像XY问题,为什么你需要一个映射,如果你用偏移量访问?我不知道是否有其他方法得到随机键值,也许不通过偏移来访问?但我想我必须使用地图,地图是按键排序的,所以当你添加更多的项目时,事物的偏移量会改变。这可能是你的错容器。如果您需要方便的随机访问,则成对向量或结构向量可能更有用。
std::map<int, int> myMap;
auto itAtOffset = std::next(myMap.begin(), offset);
std::map<int, int> myMap;
std::map<int, int>::iterator itAtOffset = myMap.begin();
std::advance(itAtOffset, offset);