C++- CPP教程

C++ 容器类 <set>

C++ 标准库中的 <set> 是一个关联容器,它存储了一组唯一的元素,并按照一定的顺序进行排序。

<set> 提供了高效的元素查找、插入和删除操作。它是基于红黑树实现的,因此具有对数时间复杂度的查找、插入和删除性能。

<set> 容器中存储的元素类型必须满足以下条件:

  • 元素类型必须可以比较大小。
  • 元素类型必须可以被复制和赋值。

语法

包含头文件:

#include <set>

声明 set 容器

std::set<元素类型> 容器名;

常用操作

  • insert(元素) : 插入一个元素。
  • erase(元素) : 删除一个元素。
  • find(元素) : 查找一个元素。
  • size() : 返回容器中元素的数量。
  • empty() : 检查容器是否为空。

实例

下面是一个使用 <set> 的简单示例,包括元素的插入、查找、删除和输出结果。

示例代码
#include <iostream>#include <set>intmain(){// 声明一个整型 set 容器std::set<int>mySet;// 插入元素mySet.insert(10);mySet.insert(20);mySet.insert(30);mySet.insert(40);// 输出 set 中的元素std::cout<<"Set contains: ";for(intnum:mySet){std::cout<<num<<" ";}std::cout<<std::endl;// 查找元素if(mySet.find(20)!=mySet.end()){std::cout<<"20 is in the set."<<std::endl;}else{std::cout<<"20 is not in the set."<<std::endl;}// 删除元素mySet.erase(20);// 再次输出 set 中的元素std::cout<<"After erasing 20, set contains: ";for(intnum:mySet){std::cout<<num<<" ";}std::cout<<std::endl;// 检查 set 是否为空if(mySet.empty()){std::cout<<"The set is empty."<<std::endl;}else{std::cout<<"The set is not empty."<<std::endl;}// 输出 set 中元素的数量std::cout<<"The set contains "<<mySet.size()<<" elements."<<std::endl;return0;}

输出结果:

Set contains: 10 20 30 40 

20 is in the set.

After erasing 20, set contains: 10 30 40 

The set is not empty.

The set contains 3 elements.

总结

<set> 是 C++ 标准库中一个非常有用的容器,特别适合需要快速查找、插入和删除操作的场景。通过上述示例,初学者可以对 <set> 的基本用法有一个清晰的了解。在实际开发中,合理利用 <set> 可以提高程序的效率和可读性。