STL set
一些函数
插入和删除效率较高
begin() ,返回set容器的第一个迭代器
end() ,返回set容器的最后一个迭代器
clear() ,删除set容器中的所有的元素
empty() ,判断set容器是否为空
max_size() ,返回set容器可能包含的元素最大个数
size() ,返回当前set容器中的元素个数
rbegin ,返回的值和end()相同
rend() ,返回的值和rbegin()相同
find() 查找某个关键字
erase(iterator) ,删除定位器iterator指向的值
erase(first,second),删除定位器first和second之间的值
erase(key_value),删除键值key_value的值
lower_bound() 第一个大于或等于该关键字的位置
upper_bound() 第一个大于该关键字的位置
Demo
#include<iostream>
#include<set>
using namespace std;
int main(){
set<int> se;
int a;
//freopen("in.txt","r",stdin);
for(int i=1;i<=10;i++){
cin>>a;
se.insert(a);
}
for(set<int>::iterator it=se.begin();it!=se.end();it++)
cout<<*it<<" ";
cout<<endl;
cout<<"set 的 size 值为 :"<<se.size()<<endl;
cout<<"set 的 maxsize的值为 :"<<se.max_size()<<endl;
cout<<"set 中的第一个元素是 :"<<*se.begin()<<endl;
cout<<"set 中的末尾位置是:"<<*se.end()<<endl;
cout<<"empty?\n";
cout<<se.empty()<<endl;
se.erase(6);
for(set<int>::iterator it=se.begin();it!=se.end();it++)
cout<<*it<<" ";
cout<<endl;
set<int>::iterator iter;
//find复杂度log2n
if((iter = se.find(99)) != se.end())
{
cout<<*iter<<endl;
}
cout<<*se.lower_bound(100)<<endl;
cout<<*se.upper_bound(98)<<endl;
return 0;
}
输入数据
98
78
3
5
6
7
8
99
4
1000
运行结果


浙公网安备 33010602011771号