集合
一、集合中常见操作函数
1、集合的组成
集合是由不重复元素组成的,例如{1,2,3},就是由数据1、2、3组成的集合
2、集合头文件
#include<set>
using namespace std;
3、集合的定义
C++定义一个集合的语句是:set<T> s,定义了一个名为s,存储数据类型为T的集合,初始是空集合,我们可以定义set<int> a,set<string> aa等等
4、集合插入元素
set 使用insert向集合中插入一个新元素,如果元素已经存在,那么这个插入是无效的,因为集合中不存在重复元素;
#include<set> using namespace std; int main(){ set<string> country; //{} country.insert("china"); //{"china"} country.insert("American"); //{"china","American"} country.insert("china"); {"china","American"}; //“China”插入无效 return 0; }
5、集合删除元素
集合set使用erase从集合中删除一个元素,如果集合中不存在这个元素,则不进行任何操作
#include<set> using namespace std; int main(){ set<string> country; //{} country.insert("china"); //{"china"} country.insert("American"); //{"china","American"} country.erase("china"); //{"American"; country.erase("china"); //删除“china”无效,因为集合中不存在这样的元素 return 0; }
6、集合判断元素是否存在
C++如果你想判断一个元素是否在集合中存在,可以使用count函数,存在返回1,不存在返回0
#include<set> using namespace std; int main(){ set<string> country; //{} country.insert("china"); //{"china"} country.insert("American"); //{"china","American"} if(country.count("china")){ //判断“china”是否属于country cout << "china belong to country " << endl; } return 0; }
7、集合迭代器
C++可以通过迭代器来访问各个元素,迭代器的写法是:set<T>::iterator it 定义了一个指向set<T>的迭代器it,其中T是任意数据类型,::iterator是固定类型
begin函数返回容器中起始元素的迭代值,end函数返回容器中尾部元素的迭代值
通过*操作可以获取指定的元素,通过++可以获取下一个元素,--可以获取上一个元素
注意:使用集合内部是一个按照从小到大有序的状态,所以迭代器在输出的时候是一个有序序列
#include<set> #include<string> #include<iostream> using namespace std; int main(){ set<string> country; //{} country.insert("china"); //{"china"} country.insert("American"); // {"china","American"} for(set<string>::iterator it = country.begin();it != country.end();it++){ cout << *it << endl; //通过迭代器输出对象 } return 0; }
8、清空集合内存和元素
C++中调用clear()函数就可以清空集合元素,同时清空set占用的内存
C++中调用size()函数就可以获取集合元素的个数