zoukankan      html  css  js  c++  java
  • set 容器的用法

    1.set容器的理解

      所有元素都会根据元素的键值自动排序,set元素的键值就是实值,实值就是键值。set不允许两个元素有相同的键值。(set的元素不像map那样可以同时拥有实值(value)和键值(key))。

    set成员函数列表如下:

    1. begin()--返回指向第一个元素的迭代器

    2. clear()--清除所有元素

    3. count()--返回某个值元素的个数

    4. empty()--如果集合为空,返回true

    5. end()--返回指向最后一个元素的迭代器

    6. equal_range()--返回集合中与给定值相等的上下限的两个迭代器

    7. erase()--删除集合中的元素

    8. find()--返回一个指向被查找到元素的迭代器

    9. get_allocator()--返回集合的分配器

    10. insert()--在集合中插入元素

    11. lower_bound()--返回指向大于(或等于)某值的第一个元素的迭代器

    12. key_comp()--返回一个用于元素间值比较的函数

    13. max_size()--返回集合能容纳的元素的最大限值

    14. rbegin()--返回指向集合中最后一个元素的反向迭代器

    15. rend()--返回指向集合中第一个元素的反向迭代器

    16. size()--集合中元素的数目

    17. swap()--交换两个集合变量

    18. upper_bound()--返回大于某个值元素的迭代器

    19. value_comp()--返回一个用于比较元素间的值的函数

     2.实现过程举例:

    #include<stdafx.h>
    #include<set>
    #include<iostream>
    using namespace std;
    int main()
    {
        int arr[7] = { 0,1,2,3,4,5,3 };
        set<int> iset(arr, arr + 7);
    
        iset.insert(9);
        cout << "size:" << iset.size() << endl;
        cout << "3 count = " << iset.count(3) << endl;
        iset.erase(1);
    
        set<int>::iterator ite1 = iset.begin();
        set<int>::iterator ite2 = iset.end();
        for (; ite1 != ite2; ite1++)
        {
            cout << *ite1<<endl;
        }
        
    
        ite1 = iset.find(3);
        if (ite1 != iset.end())
            cout << "number 3 is in array " << endl;
    
        ite1 = iset.find(1);
        if (ite1 != iset.end())
            cout << "1 not found in array" << endl;
        system("pause");
        return 0;
    }

    结果:

    set容器中初始化两个数值3,但是是只插入一个,任意两个元素之间的键值都是不相等的。

  • 相关阅读:
    开源项目:MMTweenAnimation
    URI跳转方式地图导航的代码实践
    处理i18n国际电话区号的代码实践
    图片变形的抗锯齿处理方法
    CocoaPods版本升级
    JSPatch 部署安全策略
    JSPatch实现原理详解<二>
    JSPatch实现原理详解
    JSPatch – 动态更新iOS APP
    iOS富文本组件的实现—DTCoreText源码解析 渲染篇
  • 原文地址:https://www.cnblogs.com/mydomain/p/9987203.html
Copyright © 2011-2022 走看看