zoukankan      html  css  js  c++  java
  • STL-set and multiset

     

    ! ! ! ! set 中的元素总是保持单调递增。

    set<int> a;

    set的插入

    
    
    set没有尾部插入函数push_back(),元素的插入一般使用insert进行动态检索插入。
    a.insert(x):在集合中a中插入元素x,x 的类型必须与 set 的元素类型一致。如果插入的元素在set中已存在则会忽略
      int n,x;scanf("%d",&n);
      for(int i=1;i<=n;i++)
        {
          scanf("%d",&x);
          a.insert(x);
        }
    set的遍历
    begin(),end()返回值分别是set中首个元素的迭代器和set中末尾元素向后一位的迭代器。
    (begin() 返回的迭代器指向set中的最小值)
    rbegin() 返回的迭代器指向set中的最大值。
    rend() 返回指向集合中第一个元素的前一个位置的迭代器
    //正向迭代器
      set<int>:: iterator i;
      for(i=a.begin();i!=a.end();i++)
      printf("%d ",*i);printf("
    ");
    
    //反向迭代器
      set<int>:: reverse_iterator i;
      for(i=a.rbegin();i!=a.rend();i++)
        printf("%d ",*i);printf("
    ");

    其他函数

    empty() size() clear()同样适用于set
    
    erase(x):其中x可以是具体的数或迭代器。删除set中不存在的元素会被忽略。
    
    find(x):返回x元素的迭代器,如果找不到x就返回end()的迭代器。
    
    count() 用来查找set中某个某个键值出现的次数。这个函数在set并不是很实用,因为一个键值在set只可能出现0或1次,这样就变成了判断某一键值是否在set出现过了。
    
    lower_bound(x)返回set中大于等于x的最小元素的迭代器。 
    upper_bound(x)返回set中大于x的最小元素的迭代器。如果找不到也会返回end()的迭代器。

    multiset 

    
    
    multiset和set的定义和成员函数都相同。
    
    multiset和set的区别是:set插入的元素不能相同,但是multiset可以相同。
    
    如果删除元素x,那么在定义的比较关系下和x相等的所有元素都会被删除。
    
    count(x):set能返回0或者1,multiset是有多少个返回多少个。
    
    
    
     
    光伴随的阴影
  • 相关阅读:
    工作后对单元测试学习的一点总结
    图片做按钮会将form表单自动提交
    转jMock Cookbook 中文版三
    转jMock Cookbook 中文版二
    转jMock Cookbook 中文版一
    JUnit4学习笔记(五):Theory(理论)测试
    JUnit4学习笔记(四):利用Rule扩展JUnit
    JUnit4学习笔记(三):assertThat语法与Matcher
    JUnit4学习笔记(二):参数化测试与假定(Assumption)
    junit学习一
  • 原文地址:https://www.cnblogs.com/forward777/p/10086986.html
Copyright © 2011-2022 走看看