首页 > 编程语言 > 详细

[C++STL] set 容器的使用

时间:2021-05-28 14:35:54      阅读:10      评论:0      收藏:0      [点我收藏+]

set 容器的入门

  • unorderset :按照insert顺序排序,另外头文件。

  • multiset:可以重复存在的集合。用count()读取个数

创建set的几种方式

  1. 常规

set<数据类型>s;
  1. 声明并初始化

set<数据类型>s{value1,value2}; 

set的特性

  1. set 容器内没有重复元素
  2. 每次insert的时候,都会自动排好序。(默认升序)
  3. 键值对, key 和值 value 相同。
  4. 修改值出现的问题( 删除 再 输入 )

常用函数

函数说明
insert() 向 set 容器中插入元素。
erase() 删除 set 容器中存储的元素。
empty() 若容器为空,则返回 true;否则 false。
begin() 返回指向容器中第一个(排好序的第一个)元素的迭代器
end() 返回指向容器最后一个元素(已排好序的最后一个)所在位置后一个位置的双向迭代器
rbegin() 返回一个逆向迭代器,指向逆向迭代的第一个元素
rend() 返回一个逆向迭代器,指向逆向迭代的最后一个元素的下一个位置
find(val) 查找值为 val 的元素的,如果找到返回该元素的迭代器,如果没找到返回end()
count(val) 查找值为 val 的元素的个数,该函数的返回值最大为 1。
lower_bound(val) 返回元素值为val 的第一个可安插位置,也就是元素值 >= val 的第一个元素位置
upper_bound(val) 返回元素值为val 的最后一个可安插位置,也就是元素值 > val 的第一个元素位置
clear() 移除所有元素,将容器清空

erase 的相关使用

种类名称作用(set,map一样)
erase(val) 删除与val 相等的所有元素,返回被移除的元素个数。
erase(pos) 移除迭代器pos 所指位置元素,无返回值。
erase(beg,end) 移除区间 [beg,end) 所有元素,无返回值。

自定义set排序规则

struct intComp {
    bool operator() (const int& lhs, const int& rhs) const {
        return lhs > rhs;
    }
};
 

制作:BDT20040

[C++STL] set 容器的使用

原文:https://www.cnblogs.com/liubaili/p/14821809.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!