21xrx.com
2024-12-22 21:15:34 Sunday
登录
文章检索 我的文章 写文章
C++如何遍历set?
2023-07-04 19:43:31 深夜i     --     --
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中所有元素。我们可以根据具体的需求选择最合适的方法。

  
  

评论区

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