按序排列

不能指定插入位置

红黑树变体

不可以直接存取元素(即 无[?]/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. c#中ref和out使用及区别

    在c#中,使用方法获得返回值时,只能获取一个返回值.当使用ref和out关键字后,可以获取多个返回值. MSDN对ref和out关键字的说明如下: ref 关键字: 使参数按引用传递.其效果是,当控制 ...

  2. git克隆代码

    1.vs--team explorer-clone,或者team-connect to tfs-clone 2.1输入git的url,2输入本地放代码的文件夹,3点clone,克隆出4.双击4 3.点 ...

  3. 1:4 UI标签和通用标签

          UI标签:负责用户界面输出的标签. 非标单:例如错误信息提示的标签 fielderror,actionerror,actionmessagr:系统错误消息的自动显示           通 ...

  4. poj2932 Coneology

    地址:http://poj.org/problem?id=2932 题目: Coneology Time Limit: 5000MS   Memory Limit: 65536K Total Subm ...

  5. k-means学习笔记

    最近看了吴恩达老师的机器学习教程(可以在Coursera,或者网易云课堂上找到)中讲解的k-means聚类算法,k-means是一种应用非常广泛的无监督学习算法,使用比较简单,但其背后的思想是EM算法 ...

  6. Ubuntu16.04 +cuda8.0+cudnn+caffe+theano+tensorflow配置明细

      本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客使用拥有最终解释权 欢迎关注我的博客:http://blog.csdn.net/hit2015spring和http://www ...

  7. MyBatis学习笔记(八)——Mybatis3.x与Spring4.x整合

    转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4271627.html 一.搭建开发环境 1.1.使用Maven创建Web项目 执行如下命令: mvn arc ...

  8. C# Http方式下载文件到本地类改进版

    在上文基础上增加了远程文件是否存在和本地文件是否存在的判断. 类代码: using System; using System.Collections.Generic; using System.Lin ...

  9. [转载]ViewState使用小结

    ViewState是.Net中提出的状态保存的一种新途径,web程序保存状态的方式有这样几种:1.Application:保存在Application中的数据是全局有效的:Application里面存 ...

  10. JavaScript实现表单验证

    表单验证可以通过 JavaScript 来完成 以下示例代码用于判断表单字段(Name)值是否存在,如果存在,则弹出信息,否则阻止表单提交: <!DOCTYPE html> <htm ...