(二)set容器
考虑后面使用函数,故先介绍函数
一、set 是 有序无重复动态数组
二、声明
set<int> s;
三、常见函数
增
s.insert(2); //插入单个元素
删
s.erase (2); //删除单个元素
s.clear(); //清空所有元素
查
s.emtpy(); //判空
s.find(2); //返回2的迭代器
s.begin(); //指向容器的第一个元素
s.end(); //指向最后一个元素之后的位置
s.count(x); //返回x在集合中出现的次数,set中只能是0/1
for (int i : s) { //for范围循环遍历查询(实际是迭代器的简写形式)
cout << i << " ";
}
for(set<int>::iterator iter=s.begin();iter!=s.end();iter++){
cout<<*iter<<ends;
} //迭代器循环查询(只能用迭代器遍历,不能用下标遍历元素)
四、初始化
1使用初始化列表
set<int> s = {1, 2, 3, 4, 5};
2使用 insert r插入单个元素/循环插入
s.insert(6);
3使用 insert 和辅组set 插入范围内元素
set<int> s2 = {7, 8, 9};
s.insert(s2.begin(), s2.end())
五、迭代器(主要用于容器遍历)
迭代器可以被视为一个指向容器中元素的指针,但它提供了一种更抽象和安全的方式来访问和操作容器中的元素。迭代器并不是直接的地址,而是一个对象,提供了访问容器元素的功能和操作。
1 、声明
set<int>::iterator iter
2、实例
for(set<int>::iterator iter=s.begin();iter!=s.end();iter++){
cout<<*iter<<ends;
}
六、常见实例
1、循环插入
set<int> s;
int n;
cin>>n;
for(int i=0;i<n;i++){
int t;
cin>>t;
s.insert(t);
}
2、迭代器查询
for(set<int>::iterator iter=s.begin();iter!=s.end();iter++){
cout<<*iter<<ends;
}
3、元素存在
if(s.count(3)){ //s.count(x)返回x在集合中出现的次数,set中只能是0或1
cout<<"found 3"<<endl;
}
else{
cout<<"not found"<<endl;
}
4、删除元素6
set<int>::iterator del=s.find(6);
if(del!=s.end()){
s.erase(6);
cout<<"delete6后的数据"<<endl;
}else{
cout<<"not deleting 6 的数据"<<endl;
}
5清空set容器
s.clear();
if(s.empty()){
cout<<"clear success"<<endl;
}
更多推荐



所有评论(0)