STL学习之set、multiset

set是一个集合容器,其中所包含的元素是唯一的,集合中的元素按一定的顺序排列,不可以直接存取元素

在插入操作和删除操作上比vector快。

不可以直接修改set或multiset容器中的元素值,必须先删除原有的元素,再插入新的元素。

multiset与set的区别:set支持唯一键值,每个元素值只能出现一次;而multiset中同一值可以出现多次。

引入set、multiset:#include <set>

默认构造:set<T> setT、multiset<T>  multisetT

遍历(迭代器):

set.begin() 返回容器中第一个数据的迭代器

set.rbegin() 返回容器中倒数第一个元素的迭代器

set.end() 返回容器中最后一个数据之后的迭代器

set.rend() 返回容器中倒数最后一个元素的后面的迭代器

插入:

set.insert(elem) 在容器中插入元素

set<int,less<int>>  setIntA 该容器是按升序方式排列元素

set<int,greater<int>>setIntB 该容器是按降序方式排列元素

大小和判空:

set.size() 返回容器中元素的数目

set.empty() 判断是否为空

删除:

set.clear() 清空容器

set.erase(pos) 删除pos迭代器所指的元素,返回下一个元素的迭代器

set.erase(beg,end) 删除区间[beg,end)的所有元素  ,返回下一个元素的迭代器

set.erase(elem) 删除容器中值为elem的元素

查找:

set.find(elem) 查找elem元素,返回指向elem元素的迭代器

set.count(elem) 返回容器中值为elem的元素个数

set.lower_bound(elem) 返回第一个>=elem元素的迭代器

set.upper_bound(elem) 返回第一个>elem元素的迭代器

set.equal_range(elem) 返回容器中与elem相等的上下限的两个迭代器(上闭下开)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值