zoukankan      html  css  js  c++  java
  • C++STL set

    set

    set是一种集合容器,所包含的元素是唯一的,集合中的元素按一定顺序排列,元素插入过程是按排序规则插入,所以不能插入指定位置

    set采用红黑树变体的数据结构实现,红黑树属于平衡二叉树,插入和删除比vector快。

    set不能直接存取元素

    set<int> s1;//默认情况下是从小到大 相当于set<int ,less<int>> s1

    set<int ,greater<int>> s2;//从大到小

    s1.insert(100);//插入元素

    s1.erase(s1.begin());//删除头部元素

     仿函数:一个类中重载函数调用操作符

    struct Func

    {

      bool operator()(const class c1,const class c2)

      {

        

      }

    }

    set<class,Func> s1; 

    查询参数插入是否成功

    pair<set<int ,Func>::iterator,bool > p1 = s1.inster(100);

    p1.second = true://成功

    s1.find(elem);//查找元素elem,返回指向elem的 迭代器

    s1.count(elem);//返回容器中elem的元素个数,对set来说是0或1,对multiset来说可能大于1

    s1.lower_bound();//返回第一个>=elem元素的迭代器

    s1,upper_bound();//返回第一个>elem元素的迭代器

    s1.equal_range(elem);//返回容器中与elem相等的上下限的两个迭代器,上限是闭区间,下限是开区间

    pair<set<int>::iterator ,set<int>::iterator >p2 = s1.equal_range(elem);

    multiset:值可以出现多次

  • 相关阅读:
    第十讲:网络虚拟化(二)
    第九讲:网络虚拟化(一)
    第十二讲:存储虚拟化(二)
    第十一讲:存储虚拟化(一)
    第八讲:I/O虚拟化
    第七讲:内存虚拟化
    第六讲:CPU虚拟化
    node to traverse cannot be null!
    利用 squid 反向代理提高网站性能(转载)
    Servlet自动加载
  • 原文地址:https://www.cnblogs.com/smh2015/p/9639302.html
Copyright © 2011-2022 走看看