21xrx.com
2024-05-20 17:17:04 Monday
登录
文章检索 我的文章 写文章
C++中如何打印set?
2023-07-12 15:32:40 深夜i     --     --
C++ 打印 set

在C++中,set是一个非常有用的容器,常用于存储不重复的元素,并且按照一定顺序排列。但有时候我们需要打印出set中存储的元素,以便于调试或者查看。

打印一个set很简单,只需要使用C++11引入的for-each循环,代码如下:


#include <iostream>

#include <set>

using namespace std;

int main() {

  set<int> s = 3; // 初始化一组数据

  for (auto x : s) // 使用for-each循环遍历set中的所有元素

    cout << x << " "; // 打印元素

  

  cout << endl;

  return 0;

}

上述代码首先初始化了一个set对象s,并且插入了一组数据。然后使用for-each循环遍历set中的所有元素,打印出每个元素,最后再打印一个换行符。

需要注意的是,由于set本身是按照一定顺序排列的,因此默认情况下for-each循环也是按照顺序依次遍历set中的元素。如果需要改变遍历顺序,可以显式地指定一个比较函数,例如:


#include <iostream>

#include <set>

using namespace std;

bool cmp(char a, char b) // 按照字典序反序排列

  return a > b;

int main() {

  set<char, decltype(cmp)> s(cmp); // 指定比较函数

  s.insert('C');

  s.insert('A');

  s.insert('B');

  for (auto x : s)

    cout << x << " "; // 按照字典序反序打印

  

  cout << endl;

  return 0;

}

上述代码首先定义了一个比较函数cmp来实现按照字典序反序排列,然后在定义set对象s时使用decltype(cmp)来指定比较函数类型,最后遍历set并打印出元素,结果为:"C B A "。

总的来说,打印一个set很简单,只需要使用for-each循环遍历所有元素即可。如果需要改变遍历顺序,可以指定一个比较函数。

  
  

评论区

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