• set用法


    1.

    关于set,必须说明的是set关联式容器。

    在set中每个元素的值都唯一,而且系统能根据元素的值自动进行排序。

    应该注意的是set中数元素的值不能直接被改变。

    2.set中常用的方法


    begin()        返回set容器的第一个元素

    end()      返回set容器的最后一个元素

    clear()          删除set容器中的所有的元素

    empty()    判断set容器是否为空

    max_size()   返回set容器可能包含的元素最大个数

    size()      返回当前set容器中的元素个数

    rbegin     返回的值和end()相同

    rend()     返回的值和rbegin()相同

    注意begin() 和 end()函数是不检查set是否为空的,使用前最好使用empty()检验一下set是否为空.

    3.

    count() 用来查找set中某个某个键值出现的次数。

    这个函数在set并不是很实用,因为一个键值在set只可能出现0或1次,这样就变成了判断某一键值是否在set出现过了。

    find()  ,返回给定值值得定位器,如果没找到则返回end()。

    insert(key_value); 将key_value插入到set中

    返回值是 pair<set<int>::iterator,bool>,bool标志着插入是否成功,

    而iterator代表插入的位置,若key_value已经在set中,则iterator表示的key_value在set中的位置。

    inset(first,second);将定位器first到second之间的元素插入到set中,返回值是void.

    lower_bound(key_value) ,返回第一个大于等于key_value的定位器

    upper_bound(key_value),返回第一个大于key_value的定位器

    4.

    erase(iterator)  ,删除定位器iterator指向的值

    erase(first,second),删除定位器first和second之间的值

    erase(key_value),删除键值key_value的值

    set中的删除操作是不进行任何的错误检查的,比如定位器的是否合法等等,所以用的时候自己一定要注意。

    5.自定义比较函数

    如果元素是结构体,可以直接将比较函数写在结构体内。

     1         struct Info
     2         {
     3             string name;
     4             float score;
     5             //重载“<”操作符,自定义排序规则
     6             bool operator < (const Info &a) const
     7             {
     8                 //按score从大到小排列
     9                 return a.score<score;
    10             }
    11         }
    12         set<Info> s;
    13         ......
    14         set<Info>::iterator it;
  • 相关阅读:
    数字签名(代码签名)流程
    (转)__cdecl __fastcall与 __stdcall
    装修主材
    ATL 获取flash信息
    Windows结构化异常
    格式化HRESULT获取对应文本
    which type of VS files should be committed into a version control system
    读Windows核心编程-5-作业
    IE WebBrowser事件触发
    Windows 结构化异常
  • 原文地址:https://www.cnblogs.com/adelalove/p/8494700.html
Copyright © 2020-2023  润新知