zoukankan      html  css  js  c++  java
  • set用法

       考试中用set(c++自带的封装起来的红黑树)可以轻松水过平衡树,效率也很高。

        所以要稍稍存一下set具体怎么用了。

        multiset可以有重复的值,而set没有。

    include<set>
    multiset<int> st;
      st.clear()//清空
      st.insert(10)//插入元素10
      st.erase(10)//删除元素10
      st.begin()//返回第一个元素
      st.end()//返回最后一个
      st.empty()//判空
      st.size()//返回其大小   
       这些是最基础的,而考试中最总要的是如何利用指针it

       创建定位器,具体删除操作

    erase(iterator)  ,删除定位器iterator指向的值
    erase(first,second),删除定位器first和second之间的值
    erase(key_value),删除键值key_value的值

    [cpp] view plain copy
    1. set<int> s;  
    2. set<int>::const_iterator iter;  
    3. set<int>::iterator first;  
    4. set<int>::iterator second;  
    5. for(int i = 1 ; i <= 10 ; ++i)  
    6.     s.insert(i);  
    7. //第一种删除  
    8. s.erase(s.begin());  
    9. //第二种删除  
    10. first = s.begin();  
    11. second = s.begin();  
    12. second++;  
    13. second++;  
    14. s.erase(first,second);  
    15. //第三种删除  
    16. s.erase(8);  
    元素检索
    find()若找到,返回该键值迭代器的位置,否则,返回最后一个元素后面一个位置。
    [cpp] view plain copy
    1. <span style="font-size:18px;">set<int> s;  
    2. set<int>::iterator it;  
    3. it=s.find(5);    //查找键值为5的元素  
    4. if(it!=s.end())    //找到  
    5.     cout<<*it<<endl;  
    6. else            //未找到  
    7.     cout<<"未找到";</span>  
    查找前驱和后继
    [cpp] view plain copy
    1. <span style="font-size:18px;">set<int> s;  
    2. s.insert(1);  
    3. s.insert(3);  
    4. s.insert(4);  
    5. cout<<*s.lower_bound(2)<<endl;  
    6. cout<<*s.lower_bound(3)<<endl;  
    7. cout<<*s.upper_bound(3)<<endl;</span>  

  • 相关阅读:
    从程序员到项目经理(十一):每个人都是管理者
    从程序员到项目经理(十):程序员加油站 --要执着但不要固执
    CentOS 7安装KVM并创建虚拟机
    kvm安装及简单使用
    pg_ctl -- 启动、停止、重启 PostgreSQL
    Rabbitmq java
    Rabbitmq安装
    Zabbix通过SNMP监控HP Gen10服务器的硬件
    PostgreSQL忘记密码
    zabbix自动发现与监控内存和CPU使用率最高的进程
  • 原文地址:https://www.cnblogs.com/QTY2001/p/7632755.html
Copyright © 2011-2022 走看看