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:值可以出现多次

  • 相关阅读:
    ASP.NET 2.0 web.config数据库连接设置与读取
    一句话影评
    百度地图api示例
    centos5.8 误改/etc/fstab后导致系统进不去 解决办法
    Nginx Gzip 压缩配置
    数据库设计的三大范式
    CentOS 6.0下vncserver安装配置
    MySQL配置文件my.cnf设置
    Linux下zip加密压缩
    keepalived的log
  • 原文地址:https://www.cnblogs.com/smh2015/p/9639302.html
Copyright © 2011-2022 走看看