按序排列

不能指定插入位置

红黑树变体

不可以直接存取元素(即 无[?]/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. CentOS6.5安装Twemproxy集群

    Twemproxy,也叫Nutcraker.是一个Twtter开源的一个Redis和Memcache代理服务器. Redis作为一个高效的缓存服务器,非常具有应用价值.但是当使用比较多的时候,就希望可 ...

  2. Java接口多线程并发测试 (一)

    本文为作者原创,禁止转载,违者必究法律责任!!! 本文为作者原创,禁止转载,违者必究法律责任!!! Java接口多线程并发测试 一,首先写一个接口post 请求代码: import org.apach ...

  3. The Air Jordan 11 Gym Red will be available December 9

    A few years ago Carmelo Anthony set the internet on fire when he was spotted rocking a never before ...

  4. nginx之gzlib压缩,expires缓存

    gzip压缩网页内容的压缩编码与传输速度优化我们观察news.163.com的头信息请求:Accept-Encoding:gzip,deflate,sdch响应:Content-Encoding:gz ...

  5. css3 弹性盒模型 变化

    如果你使用google搜索Flexbox,你会发现很多过时的信息.这里将告诉你如何迅速的辨别你需要的信息. 如果你正在查找有关于Flexbox的博客资料,你看到了“display:box;”或者“bo ...

  6. LR和SVM的相同和不同

    之前一篇博客中介绍了Logistics Regression的理论原理:http://www.cnblogs.com/bentuwuying/p/6616680.html. 在大大小小的面试过程中,经 ...

  7. 如何获得当前页的SITECORE上下文

    当你开始任何项目,你需要首先要做的是了解当前页面的信息向网站用户显示相关页面数据.在今天的教程中,我将介绍一些基本的API调用的实现. Sitecore的实例 获得有关当前项目的信息,您可以使用Sit ...

  8. JSON草稿

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  9. 命名空间“Microsoft.Office.Interop”中不存在类型或命名空间名称“Excel”。是否缺少程序集引用 的另一种解决方案

    一直以来都是使用tfs进行源代码管理,系统部署也是由我本机生成后发布到服务器上,某一日,进行发布操作时,报了 [命名空间“Microsoft.Office.Interop”中不存在类型或命名空间名称“ ...

  10. ping和telnet的区别

    内容主要转自: http://jingyan.baidu.com/article/8065f87fc3b31123312498e5.html http://zhidao.baidu.com/link? ...