21xrx.com
2024-11-05 17:24:36 Tuesday
登录
文章检索 我的文章 写文章
C++中set的遍历方法
2023-06-22 19:47:08 深夜i     --     --
C++ set 遍历 方法

C++中的set是一种关联容器,其内部元素按照严格的弱序排列,且添加元素时会自动去重。在实际开发中,我们经常需要对set中的元素进行遍历操作,本文将介绍C++中set的遍历方法。

1. 使用迭代器遍历set

set是STL中的容器之一,它提供了迭代器的支持。我们可以通过迭代器遍历set中的元素。


#include <iostream>

#include <set>

int main()

{

  std::set<int> s 2;

  std::set<int>::iterator it;

  for (it = s.begin(); it != s.end(); ++it) {

    std::cout << *it << " ";

  }

  return 0;

}

上述代码就是通过迭代器遍历set中的元素。注意,set 中的元素是按照升序排列的。此外,我们还可以使用auto关键字替代迭代器类型。


#include <iostream>

#include <set>

int main()

{

  std::set<int> s 5;

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

    std::cout << *it << " ";

  }

  return 0;

}

2. 使用范围for循环遍历set

C++11 引入了范围for循环,可以更方便地遍历容器中的元素。


#include <iostream>

#include <set>

int main()

{

  std::set<int> s 3;

  for (const auto& i : s)

    std::cout << i << " ";

  

  return 0;

}

上述代码中,我们使用了const auto&类型的i来避免对set中的元素进行修改。

3. 使用std::for_each()遍历set

我们还可以使用std::for_each()函数遍历set中的元素。


#include <iostream>

#include <set>

#include <algorithm>

void print(int n)

  std::cout << n << " ";

int main()

{

  std::set<int> s 4;

  std::for_each(s.begin(), s.end(), print);

  return 0;

}

上面代码中,我们定义了一个输出函数print(),然后使用std::for_each()函数遍历set中的元素,并将每个元素传递给print()函数进行输出。

在实际应用中,我们可以根据需要选择适合自己的遍历方式。无论哪种遍历方式,我们都可以遍历set中的元素,实现自己的需求。

  
  

评论区

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