• set[c++]


    #include <iostream>

    using namespace std;

    #include <set>

    int main(int argc, const char * argv[])

    {

        //set必须保证输出数据的唯一性

        set<int> ss;

        int a[] = {1,2,5,4,3,6,7,8};

        //插入数据

        for (int i=0; i<sizeof(a)/4; i++) {

            ss.insert(a[i]);

        }

        //删除数据

        for (set<int>::iterator p =ss.begin(); p!=ss.end(); ++p) {

            if (*p==3) {

                ss.erase(p);

            }

        }

        //输出

        for(set<int>::iterator p=ss.begin();p!=ss.end();++p)

        {

            cout<<*p<<endl;

        }

        return 0;

    }

    输出:1 2 4 5 6 7 8

    集合(Set)是一种包含已排序对象的关联容器。多元集合(MultiSets)和集合 (Sets)相像,只不过支持重复对象,其用法与set基本相同。
    1.begin() 返回指向第一个元素的迭代器
    2.clear() 清除所有元素

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

    9

    4.empty() 如果集合为空,返回true
    5.end() 
    返回指向最后一个元素的迭代器
    6.equal_range() 返回第一个>=关键字的迭代器和>关键字的迭代器

    语法:

    pair <iterator,iterator>equal_range( const key_type &key ); //key是用于排序的关键字
    Set<int> ctr;
    例如:

    Pair<set<int>::iterator,set<int>::iterarot>p; For(i=0;i<=5;i++) ctr.insert(i); P=ctr.equal_range(2); 那么*p.first==2;*p.second==3;

    7.erase() 删除集合中的元素 语法:

    iterator erase( iterator i ); //删除i位置元素
    iterator erase( iterator start, iterator end ); //删除从start开始到end(end为第一个不被删除的值)结束的元素 size_type erase( const key_type &key ); //删除等于key值的所有元素(返回被删除的元素的个数) //前两个返回第一个不被删除的双向定位器,不存在返回末尾 //第三个返回删除个数

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

    iterator find( const key_type &key ); //查找等于key值的元素,并返回指向该元素的迭代器; //如果没有找到,返回指向集合最后一个元素的迭代器

    9.get_allocator() 返回集合的分配器 10.insert() 在集合中插入元素

    语法:
    iterator insert( iterator i, const TYPE &val ); //
    在迭代器i前插入val
    void insert( input_iterator start, input_iterator end ); //
    将迭代器start开始到end(end不被插入)结束返回内的元素插入到集合中
    pair insert( const TYPE &val ); //插入val元素,返回指向该元素的迭代器和一个布尔值来说明val是否成功被插入 //应该注意的是在集合(Sets中不能插入两个相同的元素)

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

    iterator lower_bound( const key_type &key );

    //返回一个指向大于或者等于key值的第一个元素的迭代器 12.key_comp() 返回一个用于元素间值比较的函数

    语法:
    key_compare key_comp(); //
    返回一个用于元素间值比较的函数对象

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

    10

     

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

    Set<int> ctr;
    Set<int>::reverse_iterator rcp; For(rcp=ctr.rbegin();rcp!=ctr.rend();rcp++) Cout<<*rcp<<
    ” ”;

    15.rend() 返回指向集合中第一个元素的反向迭代器 16.size() 集合中元素的数目
    17.swap() 交换两个集合变量

    语法:

    void swap( set &object ); //交换当前集合和object集合中的元素 18.upper_bound() 返回大于某个值元素的迭代器

    语法:
    iterator upwer_bound( const key_type &key ); //
    返回一个指向大于key值的第一个元素的迭代器

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

    iterator upper_bound( const key_type &key );//返回一个用于比较元素间的值的函数对象 

    感谢来访,共同学习!
  • 相关阅读:
    SQL判断如果一列值为null则取另一列值代替 isnull()
    关于js的function.来自百度知道的回答,学习了.
    OSI七层与TCP/IP五层网络架构
    504 Gateway Time-out
    nginx中关于并发数的问题worker_connections,worker_processes
    php实现二叉树的遍历
    nginx负载均衡的简单实现
    linux shell数据重定向
    数据库范式的思考以及数据库的设计
    msyql中myism和innodb的区别
  • 原文地址:https://www.cnblogs.com/dingxiaowei/p/3205003.html
Copyright © 2020-2023  润新知