set/multiset_01
按序排列
不能指定插入位置
红黑树变体
不可以直接存取元素(即 无[?]/at(?)操作)
不可以直接修改元素值(用 先删除后添加的方式,达到相同效果)
A、头尾 添加/移除
B、随机存取
C、数据存取
1、构造函数
1.1、默认构造函数 ==> 无参构造函数
1.2、必定需要 复制构造函数 :set<T> setT(const set& st);
1.3、set<T> setT(iteratorBegin, iteratorEnd); // 迭代器区间[iteratorBegin, iteratorEnd)拷贝给setT
注意: 这里可以传数组指针,数组指针在特定情况下可以当做迭代器使用
1.4、无 // n个elemValue复制给lstT
2、赋值
2.1、重载"="操作符
set& = const set& vec;
2.2、无 // [beg, end)区间拷贝给
2.3、无 // n个elemValue拷贝给
3、迭代器操作
3.1、const_iterator set<T>::begin(); // 第1个
3.2、const_iterator set<T>::end(); // 最后1个
3.3、const_reverse_iterator set<T>::rbegin(); // 倒数第1个
3.4、const_reverse_iterator set<T>::rend(); // 倒数最后1个
4、插入
注意: 拷贝插入(ZC: 也就是类实例的话,类必须提供复制构造函数)
std::pair<set<T>::iterator, bool> pair = set::insert(elemValue); // 返回pair<指向新元素的iterator, 插入是否成功>,拷贝插入
5、删除
void set::clear();
iterator set::erase(const_iterator beg, const_iterator end); // [beg, end)区间,返回下一个元素的位置(迭代器)
iterator set::erase(const_iterator pos); // 返回下一个元素的位置(迭代器)
size_type set::erase(elemValue); // 删除 容器中 值为 elemValue的元素
6、交换
void set<T>::swap(set<T>&);
7、大小
size_type set<T>::size();
bool set<T>::empty();
8、查找
iterator set::find(key_value elem); // 返回指向elem的迭代器
size_type set::count(key_value elem); // 返回容器中值为elem的元素个数
iterator set::lower_bound(key_value elem); // 返回第一个>=elem元素的迭代器
iterator set::upper_bound(key_value elem); // 返回第一个>elem元素的迭代器
std::pair<set<T>::iterator, set<T>::iterator> pair01 = setT.equal_range(key_value elem); // 返回容器中与elem相等的上下限的两个迭代器。上限是闭区间,下限是开区间。如[beg, end)
9、排序
9.1、默认排序函数
less<T>
greater<T>
set/multiset_01的更多相关文章
随机推荐
- 源代码下载 作者:王先荣(Xianrong Wang)
作者:王先荣(Xianrong Wang) 下面是我的一些源代码: 1. 图像处理学习系列源代码——包括该系列文章的几乎所有代码: 1.5. 图像处理学习系列中用到的dll文件包——将这个解压缩之后放 ...
- Leetcode: Binary Tree Level Order Transversal II
Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left ...
- c/c++的预处理定义 Stringizing Operator (#) Charizing Operator (#@) Token-Pasting Operator (##)
c/c++的预处理定义:一.Stringizing Operator (#)在c和c++中数字标志符#被赋予了新的意义,即字符串化操作符.其作用是:将宏定义中的传入参数名转换成用一对双引号括起来参数名 ...
- kendo datetimepicker
@(Html.Kendo().DatePicker() .Name("yearCalendar") .Value(DateTime.Now) .Start(CalendarView ...
- mysql服务器上的mysql这个实例中表的介绍
1.user表. 分个分隔符
- python之路----面向对象进阶一
一.isinstance和issubclass isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(object): pass obj = Foo() i ...
- Python3 实现(wxpy)用微信自动定时给朋友定时推广
Python3 实现(wxpy)用微信自动定时给朋友定时推广 安装wxpy 安装微信机器人wxpy非常简单,如果你拥有pip,请直接按照Github中的方法安装: pip install wxpy 实 ...
- CP2102
1概述 CP2102其集成度高,内置USB2.0全速功能控制器.USB收发器.晶体振荡器.EEPROM及异步串行数据总线(UART),支持调制解调器全功能信号,无需任何外部的USB器件.CP2102与 ...
- static理解
static 修饰的变量称为类变量或全局变量或成员变量,在类被加载的时候成员变量即被初始化,与类关联,只要类存在,static变量就存在. 一个static变量单独划分一块存储空间,不与具体的对象绑定 ...
- 三种常用的js数组去重方法
第一种是比较常规的方法 思路: 1.构建一个新的数组存放结果 2.for循环中每次从原数组中取出一个元素,用这个元素循环与结果数组对比 3.若结果数组中没有该元素,则存到结果数组中 Array.pro ...