c++ STL函数大全(五):set

 

set  在set中每个元素的值都唯一,而且系统能根据元素的值自动进行排序。(从小到大 greater)

0 准备

#include<set>

 

1.initialize & assignment

 

set用数组初始化,并遍历。

int a[5]= { 1,6,3,3,5 };

set<int> temp(a,a+5);


res:1 3 5 6
set<int> s;

2. operator

操作无非就是增删查改。

2.1 add 

s.insert(1)

 2.2 delete 

s.clear()  //清空

//erase
	auto fir = s.begin();
	auto sec = s.begin();
	sec ++;
	sec ++;
	sec ++;
	s.erase(fir, sec); //erase [0,3)
	s.erase(7);

res: 345689

2.3 query 

s.empty()   //空为true,不空为false
s.max_size()  //可能包含的元素最大个数
s.size()   //当前元素数

s.begin()
s.end()  //return pos

    e.g. 
    s.insert(1); s.insert(5); s.insert(3);
    cout<<*s.begin();

    auto i = s.end();  //auto = set<int>::iterator
        i--;
    cout << *i;

res:1 5 

 

s.find()
	int a[] = { 1,7,3 };
	set<int> s(a, a + 3);
	set<int>::iterator it;
	if ((it = s.find(7)) != s.end())
		cout << *it;
res:7

 


s.lower_bound(); //返回第一个 >= 参数的位置
s.upper_bound(); //返回最后一个 >= 参数的位置(set中最大的)
	int a[] = { 1,4,7 };
	set<int> s(a, a + 3);
	cout << *s.lower_bound(2);
	cout << *s.lower_bound(4);
	cout << *s.upper_bound(4);
res:447

2.4 change 

2.4  change

 

3. 常见写法

3.1 traverse 

for (set<int>::iterator it = temp.begin(); it != temp.end(); it++)
	cout << *it << endl;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值