Set的简单应用
set为C++的一种标准关联容器,掌握其使用能大大方便理解和简化C++的编程。
set包含的头文件
#include<iostream>
set的基本常用操作
使用时注意包含头文件<set> std::set and std::multiset associative containers
s.begin() 返回set容器的第一个元素
s.end() 返回set容器的最后一个元素
s.clear() 删除set容器中的所有的元素
s.empty() 判断set容器是否为空
s.insert() 插入一个元素
s.erase() 删除一个元素
s.size() 返回当前set容器中的元素个数
set容器的创建方式
set是默认的小于比较容器,创建一个大于比较容器需要包含头文件functional
set中不允许存在两个相同的数据,但可采用multiset来存储相同的数据
#include<iostream>
#include<set>
#include<functional>
using namespace std;
int main()
{
set<int> a; //小于比较
set<int,greater<int>>b;//大于比较
multiset<int> c; //允许相同数据
return 0;
}
set容器的初始化
可用三种方式实行,数组初始、容器初始和调用复制构造函数初始
#include<iostream>
#include<set>
#include<functional>
using namespace std;
void setprint(set<int> alluse)
{
cout<<"testout:"<<endl;
for(set<int>::iterator it=alluse.begin();it!=alluse.end();it++)
{
cout << *it << " ";
}
cout<<endl;
}
void setprint(set<int,greater<int>> alluse)
{
cout<<"testout:"<<endl;
for(set<int,greater<int>>::iterator it=alluse.begin();it!=alluse.end();it++)
{
cout << *it << " ";
}
cout<<endl;
}
void setprint(multiset<int> alluse)
{
cout<<"testout:"<<endl;
for(multiset<int>::iterator it=alluse.begin();it!=alluse.end();it++)
{
cout << *it << " ";
}
cout<<endl;
}
int main3()
{
int data[6]={1,2,3,4,5,5};
set<int> a(data,data+6); //数组初始
set<int,greater<int>>b(a.begin(),a.end());//容器初始
set<int