21xrx.com
2024-12-22 21:47:42 Sunday
登录
文章检索 我的文章 写文章
"C++实现Map容器的打印"
2023-07-02 22:08:31 深夜i     --     --
C++ Map 容器 打印

Map容器是C++ STL库中的一种关联容器,它以键-值对的形式存储元素,并提供了高效的查找与插入功能。在编写程序时,经常需要输出Map容器中的元素,以便调试或展示处理结果。本文将介绍C++实现Map容器的打印方法。

Map容器中的元素是按键值升序存储的,默认情况下输出的顺序也是升序。我们可以使用迭代器来遍历Map容器中的元素,将其打印出来。下面是一个使用for循环遍历Map容器并打印元素的示例代码:


#include <iostream>

#include <map>

using namespace std;

int main() {

  map<string, int> myMap = { 1, "banana", "orange"};

  for (auto it = myMap.begin(); it != myMap.end(); it++)

    cout << it->first << " " << it->second << endl;

  

  return 0;

}

在上述代码中,我们首先定义了一个名为myMap的Map容器,并初始化了三个键-值对。然后使用for循环依次遍历Map容器中的每个元素,使用迭代器it访问键值对中的键first和值second,并输出它们。

上述代码输出的结果如下:


apple 1

banana 2

orange 3

如果想要输出的元素按照降序排列,可以使用greater作为模板参数,如下所示:


#include <iostream>

#include <map>

using namespace std;

int main() {

  map<int, string, greater<int>> myMap = { "apple", 2, 3};

  for (auto it = myMap.begin(); it != myMap.end(); it++)

    cout << it->first << " " << it->second << endl;

  

  return 0;

}

在上述代码中,我们定义了一个名为myMap的Map容器,键类型为int,值类型为string,并使用greater作为第三个模板参数,表示按照键值降序排列。同样使用for循环依次遍历Map容器中的每个元素,输出它们。

上述代码输出的结果如下:


3 orange

2 banana

1 apple

除了使用迭代器遍历Map容器,也可以使用范围for循环遍历Map容器中的元素,并输出它们。示例代码如下:


#include <iostream>

#include <map>

using namespace std;

int main() {

  map<string, int> myMap = {"apple", 2, 3};

  for (auto const& [key, value] : myMap)

    cout << key << " " << value << endl;

  

  return 0;

}

在上述代码中,我们使用了C++17中的Structured Binding特性,将Map容器中键值对中的键和值绑定到变量key和value中,并在循环体中输出它们。

上述代码输出的结果与前面相同:


apple 1

banana 2

orange 3

总之,使用迭代器或范围for循环遍历Map容器的元素并输出它们是实现Map容器打印的常用方式。根据需求可以选择输出升序或降序排列的元素,并可以通过Structured Binding特性简化代码。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复