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

运行结果

posted @ 2019-01-18 19:44  ChunhaoMo  阅读(146)  评论(0)    收藏  举报