21xrx.com
2024-12-22 17:20:34 Sunday
登录
文章检索 我的文章 写文章
C++中的Set类型
2023-07-14 11:48:15 深夜i     --     --
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类型。

  
  

评论区

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