21xrx.com
2025-03-30 10:26:40 Sunday
文章检索 我的文章 写文章
C++如何遍历set?
2023-07-04 19:43:31 深夜i     19     0
C++ 遍历 set

Set是C++标准库中的一种容器,可用于存储一组排序的唯一元素。在某些情况下,我们可能需要遍历set中的元素,例如打印出它们的值或执行特定的操作。本文将介绍C++如何遍历set。

使用迭代器遍历set

set容器中的元素按照升序排列,并去重。因此,我们可以使用迭代器来遍历set,如下所示:

#include <iostream>
#include <set>
using namespace std;
int main() {
  set<int> myset = 2;
  for (auto it = myset.begin(); it != myset.end(); ++it) {
    cout << *it << " ";
  }
  return 0;
}

在这个例子中,我们首先创建了一个不重复的set,然后使用迭代器遍历set中所有元素。请注意,在每次迭代时,我们使用*运算符访问迭代器所指向的元素。

使用auto关键字简化代码

上面的代码中使用了迭代器类型auto声明,它可以根据变量初始化的值推断出其类型,因此可以简化代码。我们可以使用以下代码来实现同样的功能:

#include <iostream>
#include <set>
using namespace std;
int main() {
  set<int> myset = 5;
  for (auto val : myset)
    cout << val << " ";
  
  return 0;
}

使用auto关键字可以使代码更加简洁易读。

使用STL算法遍历set

除了使用迭代器外,我们还可以使用STL算法来遍历set。下面是一个使用for_each算法的范例:

#include <iostream>
#include <algorithm>
#include <set>
using namespace std;
void print(int n)
  cout << n << " ";
int main() {
  set<int> myset = 6;
  for_each(myset.begin(), myset.end(), print);
  return 0;
}

在这个例子中,我们定义了一个打印函数print,然后使用for_each算法遍历set中所有元素并对它们进行打印操作。请注意,print函数的参数类型和for_each算法的第三个参数类型必须匹配。

总结

在本篇文章中,我们介绍了三种遍历set容器的方法。使用迭代器是最常用的方法,而使用auto关键字可以使代码更加简洁易读。使用STL算法也可以方便地遍历set中所有元素。我们可以根据具体的需求选择最合适的方法。

  
  

评论区

请求出错了