版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34784043/article/details/82817714
下面是程序:
#include <iostream>
#include <set>
using namespace std;
int main(){
//创建一个集合
set<int> setOne;
//向set中插入数据
setOne.insert(10);
setOne.insert(2);
setOne.insert(16);
setOne.insert(9);
setOne.insert(20);
setOne.insert(1);
//插入相同数据,不能插入
setOne.insert(10);
//遍历其中所有数据
set<int>::iterator iter;
for( iter=setOne.begin(); iter!=setOne.end(); iter++)
cout << *iter << " ";
cout << endl;
//返回当前集合中出现的某个值的元素的数目
cout << setOne.count(10) << endl;
//返回集合中与给定值相等的上下限的两个迭代器返回集合中与给定值相等的上下限的两个迭代器
pair<set<int>::iterator,set<int>::iterator> doubleIter;
doubleIter = setOne.equal_range(9);
cout << *(doubleIter.first) << " " << *(doubleIter.second) << endl;
//删除从doubleIter.first开始到doubleIter.second结束的元素
setOne.erase( doubleIter.first, doubleIter.second);
for( iter=setOne.begin(); iter!=setOne.end(); iter++)
cout << *iter << " ";
cout << endl;
//创建另外一个集合
set<int> setTwo(setOne);
//查找集合中10
iter = setTwo.find(10);
cout << *iter << endl;
//删除集合二中10
setTwo.erase(iter);
//删除集合二中的1
setTwo.erase(1);
for( iter=setTwo.begin(); iter!=setTwo.end(); iter++)
cout << *iter << " ";
cout << endl;
//返回一个指向大于或者等于key值的第一个元素的迭代器。
iter = setTwo.lower_bound(2);
cout << *iter << endl;
//在当前集合中返回一个指向大于Key值的元素的迭代器
iter = setTwo.upper_bound(2);
cout << *iter << endl;
//返回当前集合能容纳元素的最大限值
cout << setTwo.max_size() << endl;
//交换当前集合和object集合中的元素
setTwo.swap(setOne);
for( iter=setTwo.begin(); iter!=setTwo.end(); iter++)
cout << *iter << " ";
//清空当前集合中所有元素
setOne.clear();
//判断当前集合是否为空,空返回true
cout << setOne.empty() << endl;
return 0;
}
下面是运行结果: