下载此文档

C++STL总结——set:集合.pdf


文档分类:IT计算机 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
该【C++STL总结——set:集合 】是由【小小布】上传分享,文档一共【5】页,该文档可以免费在线阅读,需要了解更多关于【C++STL总结——set:集合 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。C++STL总结——set:集合
C++STL总结——set:集合
包含头⽂件:set
包含两个容器:set,multiset
整合
//set:集合(不允许集合中有重复的元素)
//multiset(允许集合中有重复的元素),
//元素在插⼊时会⾃动排序(升序)
voidPrintSet(set<int>&s){
for(set<int>::iteratorit=();it!=();it++){
cout<<*it<<"";
}
cout<<endl;
}
voidset_test_01(){
//构造和赋值
set<int>s1;//默认构造
(10);
(30);
(20);
(50);
(40);
PrintSet(s1);
set<int>s2(s1);//拷贝构造
set<int>s3;
s3=s2;//=赋值
}
voidset_test_02(){
//⼤⼩和交换
set<int>s1;
for(inti=0;i<5;i++){
(i);
}
cout<<()<<endl;//⼤⼩
();//判空
set<int>s2;
for(inti=10;i<15;i++){
(i);
}
(s1);//交换
}
voidset_test_03(){
//插⼊和删除
set<int>s1;
for(inti=0;i<5;i++){
//只能使⽤insert插⼊,没有头插尾插之类的
(i);
(i);
}
//(iterator):删除迭代器位置的元素,
//参数只能是迭代器
(());
//(iterator,iterator):删除区间内的元素,
//两个参数均只能是迭代器
((),());
();//清空
(4);//(n):删除集合中值为n的数
}
voidset_test_04(){
//查找和统计
set<int>s1;
for(inti=0;i<5;i++){
(i);
}
//(n):查找值为n的元素位置,找到返回pos,
//(),⽆论找到与否,返回的都是迭代器
set<int>::iteratorpos=(3);
/*
⼀般⽤法
if(pos!=())cout<<"找到位置为pos:"<<*pos<<endl;//find返回的迭代器从0开始计数
elsecout<<"未找到"<<endl;
*/
multiset<int>ms;
(10);
(20);
(10);
(30);
(10);
//count(n):返回集合中有⼏个值为n的元素,
//set容器只能为0或者1,multiset可以>1,返回值是整数
intnum=(10);
}
//set容器修改排序规则:运⽤仿函数
classMyCompare{
public:
booloperator()(intn1,intn2){
returnn1>n2;
}
};
voidset_test_05(){
set<int>s1;
(20);
(40);
(10);
(50);
(30);
PrintSet(s1);//默认从⼩到⼤
//改变排序规则
set<int,MyCompare>s2;
(20);
(40);
(10);
(10);
(50);
(30);
//因为排序规则的改变,迭代器也要发⽣相应的改变
for(set<int,MyCompare>::iteratorit=();it!=();it++){
cout<<*it<<"";
}
cout<<endl;
}
迭代器遍历
voidPrintSet(set<int>&s){
for(set<int>::iteratorit=();it!=();it++){
cout<<*it<<"";
}
cout<<endl;
}
构造和赋值
voidset_test_01(){
//构造和赋值
set<int>s1;//默认构造
(10);
(30);
(20);
(50);
(40);
PrintSet(s1);
set<int>s2(s1);//拷贝构造
set<int>s3;
s3=s2;//=赋值
}
⼤⼩和交换
voidset_test_02(){
//⼤⼩和交换
set<int>s1;
for(inti=0;i<5;i++){
(i);
}
cout<<()<<endl;//⼤⼩
();//判空
set<int>s2;
for(inti=10;i<15;i++){
(i);
}
(s1);//交换
}
插⼊和删除
voidset_test_03(){
//插⼊和删除
set<int>s1;
for(inti=0;i<5;i++){
//只能使⽤insert插⼊,没有头插尾插之类的
(i);
}
//(iterator):删除迭代器位置的元素,
//参数只能是迭代器
(());
//(iterator,iterator):删除区间内的元素,
//两个参数均只能是迭代器
((),());
();//清空
(4);//(n):删除集合中值为n的数
}
查找和统计
voidset_test_04(){
//查找和统计
set<int>s1;
for(inti=0;i<5;i++){
(i);
}
//(n):查找值为n的元素位置,找到返回pos,
//(),⽆论找到与否,返回的都是迭代器
set<int>::iteratorpos=(3);
/*
⼀般⽤法
if(pos!=())cout<<"找到位置为pos:"<<*pos<<endl;//find返回的迭代器从0开始计数
elsecout<<"未找到"<<endl;
*/
multiset<int>ms;
(10);
(20);
(10);
(30);
(10);
//count(n):返回集合中有⼏个值为n的元素,
//set容器只能为0或者1,multiset可以>1,返回值是整数
intnum=(10);
}
set容器修改排序规则(默认:从⼩到⼤)
//set容器修改排序规则:运仿函数
classMyCompare{
public:
booloperator()(intn1,intn2){
returnn1>n2;
}
};
voidset_test_05(){
set<int>s1;
(20);
(40);
(10);
(50);
(30);
PrintSet(s1);//默认从到
//改变排序规则
set<int,MyCompare>s2;
(20);
(40);
(10);
(50);
(30);
//因为排序规则的改变,迭代器也要发相应的改变
for(set<int,MyCompare>::iterator=();it!=();it++){
cout<<*it<<"";
}
cout<<endl;
}

C++STL总结——set:集合 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人小小布
  • 文件大小200 KB
  • 时间2022-11-21