[C++STL] set 容器的入门

set 容器的入门

  • unordered_set:另外头文件,乱序排放,使用哈希表(便于查找)

  • 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
posted @ 2021-05-28 13:32  流白李  阅读(107)  评论(0编辑  收藏  举报