[C++STL] set 容器的入门
2024-09-03 06:48:38
set 容器的入门
unordered_set:另外头文件,乱序排放,使用哈希表(便于查找)
multiset:可以重复存在的集合。用count()读取个数
创建set的几种方式
常规
set<数据类型>s;
声明并初始化
set<数据类型>s{value1,value2};
set的特性
- set 容器内没有重复元素
- 每次insert的时候,都会自动排好序。(默认升序)
- 键值对, key 和值 value 相同。
- 修改值出现的问题( 删除 再 输入 )
常用函数
函数 | 说明 |
---|---|
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
最新文章
- CC2540串口输出调试功能
- WebAPI返回数据类型解惑
- oracle job草稿
- swift 开篇
- MVC 弹出提示框
- POJ 1734 求最小环路径 拓展Floyd
- hdu 2471 简单DP
- Longest Palindromic Substring - 字符串中最长的回文字段
- 揭秘 HashMap 实现原理(Java 8)
- 雷林鹏分享:jQuery EasyUI 数据网格 - 动态改变列
- centos7下Etcd3集群搭建
- c++ 右值引用,move关键字
- Codeforces 931F - Teodor is not a liar!
- windows上安装Anaconda和python
- struts1(一)流程分析
- 写一个限制上传文件大小和格式的jQuery插件
- oozie 重新提交作业
- Python中通过csv的writerow输出的内容有多余的空行
- 新手C#SQLServer在程序里实现语句的学习2018.08.12
- Codeforces Round #376 (Div. 2) D. 80-th Level Archeology —— 差分法 + 线段扫描法