c++ - 有没有办法从 map 中获取特定的键值对?

标签 c++ dictionary stl iterator

我目前正在学习 STL 中的 map 。我想知道如何从 map 中获取特定的键值对。例如,下图中的第三个键值对。 'C'-> 1

    'A'-> 1
    'B'-> 1
    'C'-> 1
    'D'-> 1
    'E'-> 2

最佳答案

是的,我们可以访问 map 的“第三个键值对”,但这不是很直接。我们需要在 map 的开头获取一个迭代器,然后将其推进两次(请注意,在更通用的代码中,您应该在执行此类操作之前检查 map 的大小是否合适)

std::map<char, int> my_map;
my_map['C'] = 3;
my_map['A'] = 1;
my_map['B'] = 2;

auto begin = my_map.begin();
std::advance(begin, 2);
std::cout << begin->first << " : " << begin->second << std::endl;

输出:

C : 3

Live Demo

请注意,第三个元素实际上是我们插入的第一个键值对。这是因为键是按排序顺序插入的。

关于c++ - 有没有办法从 map 中获取特定的键值对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56344129/

相关文章:

c++ - 如何计算 vector 递归类型中的非空 vector

c++ - 是否有 std::function 的独立实现?

c++ - 任意 double 容器的模板语法是什么?

c++ - c++中数组的动态内存分配

c++ - 使用 MoMu STK 进行音频合成

android - LibGdx:鼠标位置与所选图 block (世界位置)不匹配

c++ - FibonacciHeap increase_key 实现

c++ - 将瓦片 map 解析为高效的水平和垂直边界框

c# - 保存用户消息的静态字典

java - 按值对Map <Key,Value>进行排序