21xrx.com
2025-04-03 23:10:47 Thursday
文章检索 我的文章 写文章
C++中的Set类型
2023-07-14 11:48:15 深夜i     14     0
C++ Set 类型 无序集合 元素去重

C++中的Set类型是一种常见的容器类型,主要用于存储一系列的元素,并对其进行排序和去重操作。Set类型可以存储任何类型的数据,包括基本类型和自定义类型。

Set类型的使用非常简单,只需要在代码中包含 "set" 头文件,并且定义一个Set对象即可。例如:

#include <set>
using namespace std;
int main() {
  set<int> mySet;
  mySet.insert(1);
  mySet.insert(2);
  mySet.insert(3);
  mySet.insert(2); // set中不会存在重复元素
  for (auto iter = mySet.begin(); iter != mySet.end(); iter++) {
    cout << *iter << endl; // 输出:1 2 3
  }
  return 0;
}

在上面的示例中,我们定义了一个名为 "mySet" 的Set对象,并向其中插入了四个元素。由于Set是一个去重容器类型,因此实际上它只会保存三个元素。我们通过迭代器遍历Set并输出其中的元素。

Set中的元素默认是按升序排序的,这是因为Set是基于红黑树实现的。如果我们想要按降序排序Set中的元素,可以使用 "greater" 模板类。例如:

#include <set>
using namespace std;
int main() {
  set<int, greater<int>> mySet;
  mySet.insert(1);
  mySet.insert(2);
  mySet.insert(3);
  for (auto iter = mySet.begin(); iter != mySet.end(); iter++) {
    cout << *iter << endl; // 输出:3 2 1
  }
  return 0;
}

除了插入元素和遍历Set中的元素外,Set还支持一系列其他的操作。例如,我们可以使用 "find" 方法来查找Set中是否包含某个元素:

#include <set>
using namespace std;
int main() {
  set<int> mySet;
  mySet.insert(1);
  mySet.insert(2);
  mySet.insert(3);
  if (mySet.find(2) != mySet.end())
    cout << "2 is in the Set" << endl;
   else
    cout << "2 is not in the Set" << endl;
  
  return 0;
}

以上代码中,我们通过 "find" 方法查找Set中是否包含数字2,并输出相关信息。

除此之外,Set还提供了很多对元素进行操作的方法,例如删除指定元素、计算Set中的元素个数等。学习掌握这些方法可以让我们更加方便地使用Set类型。

  
  

评论区