• 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>

  • 相关阅读:
    (转)C++ typename的起源与用法
    EOS智能合约深度解析
    cmake常用变量和命令解析
    (转)Linux下source命令详解
    eosio_install.sh执行过程
    java之collection总结
    Guava之RangeMap
    java file.listFiles()按文件名称、日期、大小排序
    Java下载文件的几种方式
    Java泛型Class<T>、T与Class<?>
  • 原文地址:https://www.cnblogs.com/cppskill/p/5412099.html
Copyright © 2020-2023  润新知