有没有办法从地图上获取特定的键值对?

Sha*_*Sid 1 c++ dictionary iterator stl

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

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

Run Code Online (Sandbox Code Playgroud)

And*_*dyG 6

是的,我们可以访问地图的“第三个键值对”,但这不是很简单。我们需要在地图的开头获得一个迭代器,然后将其前进两次(请注意,在更通用的代码中,您应先检查地图是否具有适当的大小,然后再执行类似的操作)

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;
Run Code Online (Sandbox Code Playgroud)

输出:

C:3

现场演示

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