zoukankan      html  css  js  c++  java
  • C++ STL Set 集合

    前言

    set是STL中的一种关联容器。集合具有无序性,互异性等特点。熟练使用STL中的set模板类,可以比较简单的解决一些编程问题。

      • 关联容器:元素按照关键字来保存和访问,STL中的map,set就是关联容器

      • 顺序容器:元素按照在容器中的位置顺序保存和访问

      在使用set模板类前,请添加头文件 #include <set>

      基本操作

      • int size(); 返回集合中元素的个数

      • iterator insert(T ); 向集合中插入一个元素

      • iterator begin(); 返回指向当前集合中第一个元素的迭代器

      • iterator end(); 返回指向当前集合中最后个元素的迭代器

      求交集,并集,差集,对称差集

      要使用上述算法,请添加头文件 #include <algorithm>

      • 交集

      • template<class _InIt1, class _InIt2, class _OutIt>

        _OutIt set_intersection(_InIt1 _First1, _InIt1 _Last1,_InIt2 _First2, _InIt2 _Last2, _OutIt _Dest);

              形参含义

              _First1 , _Last1 集合a的头尾迭代器

              _First1 ,   _Last2 集合b的头尾迭代器

              _Dest  储存运算结果容器的头迭代器

              返回值

              返回储存结果容器的最后一个元素的下一个迭代器

        int first[] = { 5,10,15,20,25 };
            int second[] = { 50,40,30,20,10 };
            set<int> a(first, first + 5);
            set<int> b(second, second + 5);
            std::vector<int> v(10);// 0  0  0  0  0  0  0  0  0  0
            std::vector<int>::iterator it;
            it = set_intersection(a.begin(), a.end(), b.begin(), b.end(), v.begin());
            //10 20 0  0  0  0  0  0  0  0
            //it 指向第三个元素
            v.resize(it - v.begin());// 10 20
        • 并集

        • template<class _InIt1, class _InIt2, class _OutIt> inline

          _OutIt set_union(_InIt1 _First1,  _InIt1 _Last1, _InIt2 _First2,  _InIt2 _Last2,  _OutIt _Dest);

            • 差集

            • template<class _InIt1,class _InIt2,class _OutIt>

              _OutIt set_difference(_InIt1 _First1, _InIt1 _Last1,_InIt2 _First2, _InIt2 _Last2,_OutIt _Dest);

                • 对称差集

                • template<class _InIt1,class _InIt2,class _OutIt>

                  _OutIt set_symmetric_difference(_InIt1 _First1, _InIt1 _Last1,_InIt2 _First2, _InIt2 _Last2,_OutIt _Dest);



              • 相关阅读:
                在通达信里制作自己的指数
                Android Studio实现代码混淆
                python 安装anaconda, numpy, pandas, matplotlib 等
                阿里云服务(一) OSS
                阿里云存储OSS之九大使用技巧
                用云存储和CDN轻松搞定网站图片
                阿里云开放服务oss的api
                'htmlentities(): charset `utf8' not supported, assuming utf-8'
                TP自动生成模块目录
                TP框架中APP_SUB_DOMAIN_DEPLOY什么意思?
              • 原文地址:https://www.cnblogs.com/woxiaosade/p/10793497.html
              Copyright © 2011-2022 走看看