C++ std::map:获取特定偏移量处的键

标签 c++ stdmap

<分区>

如果我的 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/

相关文章:

c++ - 将 SDL 示例移植到 OpenGL 和 C++

c++ - C++ 标准中的 move 概念

c++ - 使用包含键和结构的映射执行 set_intersection 时出错

C++0x 3d map 像 php 关联数组一样初始化

c++11 - 是否可以使用 std::map 处理 std::ofstream ?

c++ - uint32_t,用于表示变量大小的 int_t 表示法

c++ - 为什么 `std::time` 有一个不必要的参数?

c++ - 是否可以在 Qt Creator IDE 中设置 wxWidgets 库?

c++ - 初始化 map 被报告为空的奇怪行为

c++ - 将自定义比较器重载到 std::map