按序排列

不能指定插入位置

红黑树变体

不可以直接存取元素(即 无[?]/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的更多相关文章

随机推荐

  1. 基于comet服务器推送技术(web实时聊天)

    http://www.cnblogs.com/zengqinglei/archive/2013/03/31/2991189.html Comet 也称反向 Ajax 或服务器端推技术.其思想很简单:将 ...

  2. 复习总结《一》MFC消息映射

    长时间人容易遗忘,从新捡起!特做下记录 MFC消息映射 1.在MFC中消息映射主要牵扯到三个宏分别为: DECLARE_MESSAGE_MAP() BEGIN_MESSAGE_MAP(theClass ...

  3. SQL: 左连接,右连接,内连接,左外连接,右外连接,完全连接

    例子: ---------------------- --------------------------- a表 id name b表 id job parent_id 1 张三           ...

  4. QPropertyAnimation 几行代码快速制作流畅的动画效果

    QPropertyAnimation Class 官方英文文档[点击前往] QPropertyAnimation Class 中文译文文档[点击前往]   简介 QPropertyAnimation ...

  5. Web API设计方法论--比较完整的web api 开发过程

    为Web设计.实现和维护API不仅仅是一项挑战:对很多公司来说,这是一项势在必行的任务.本系列将带领读者走过一段旅程,从为API确定业务用例到设计方法论,解决实现难题,并从长远的角度看待在Web上维护 ...

  6. P2486 [SDOI2011]染色

    P2486 [SDOI2011]染色 树链剖分 用区间修改线段树维护 对于颜色段的计算:sum[o]=sum[lc]+sum[rc] 因为可能重复计算,即左子树的右端点和右子树的左端点可能颜色相同 多 ...

  7. mysql与oracle常用函数及数据类型对比00持续补充

    最近在转一个原来使用oracle,改为mysql的系统,有些常用的oracle函数的mysql实现顺便整理了下,主要是系统中涉及到的(其实原来是专门整理过一个详细doc的,只是每次找word麻烦). ...

  8. 基于Swoole和Redis实现的并发队列处理系统

    背景 由于PHP不支持多线程,但是作为一个完善的系统,有很多操作都是需要异步完成的.为了完成这些异步操作,我们做了一个基于Redis队列任务系统. 大家知道,一个消息队列处理系统主要分为两大部分:消费 ...

  9. 20145327 《网络对抗》逆向及BOF基础实践

    20145327 <网络对抗>逆向及BOF基础实践 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任 ...

  10. __NSCFConstantString && __NSPlaceholderDictionary

    一 -[__NSCFConstantString size]: unrecognized selector sent to instance 0x53ea70 该错误是在我将NSString类型的参数 ...