• c++ STL set


    /* set
    set和multiset会根据特定的排序原则将元素排序。         set中的元素没有重复,并且默认从小到大排序
    两者不同之处在于,multisets允许元素重复,而set不允许重复。
    常用操作
    set<int> s    定义一个set容器 类型为int型
    s.begin()         返回指向第一个元素的迭代器
    s.clear()          清除所有元素
    s.count()         返回某个值元素的个数
    s.empty()        如果集合为空,返回true
    s.end()           返回指向最后一个元素之后的迭代器,不是最后一个元素
    s.erase()          删除集合中的元素
    s.find()           返回一个指向被查找到元素的迭代器,如果没找到则返回end()
    s.insert()          在集合中插入元素
    s.size()            集合中元素的数目
    s.swap()          交换两个集合变量
    例子:
    #include <iostream>
    #include <set>
    using namespace std;
    int main()
    {
        int i;
        set<int> set1;
        for(i=0; i<10; ++i)
            set1.insert(i);
        set<int>::iterator it;
        for(it=set1.begin(); it!=set1.end(); it++)
            cout<<*it<<" ";
        cout<<endl;
        set1.erase(5);
        if(set1.insert(3).second)//把3插入到set1中,插入成功则set1.insert(3).second返回1,否则返回0.
            cout<<"set insert success";
        else
            cout<<"set insert failed";
        cout<<endl;
        set<int>::iterator itr;
        for(itr=set1.begin(); itr!=set1.end(); itr++)
            cout<<*itr<<" ";
        set1.clear();
        return 0;
    }
     
     
     

    #include<bits/stdc++.h>
    using namespace std;
    set<int>s;
    int a[105];
    int main() {
    int n;
    cin>>n;
    for(int i=0; i<n; i++) {
    cin>>a[i];
    s.insert(a[i]);
    }
    cout<<s.size()<<endl;
    while(!s.empty()) {
    cout<<*s.begin()<<" "; //注意此处的用法
    s.erase(s.begin());
    }
    return 0;
    }

     
     
  • 相关阅读:
    Educational Codeforces Round 92
    练习
    03 并查集(带权,分类) 树状数组 线段树
    02 动态规划 LIS LCS
    05 矩阵优化 (斜率优化等待补)
    01 STL 打表 二分查找
    AtCoder Beginner Contest 174
    Codeforces Round #660 (Div. 2)
    PCHMI工控组态开发视频教程
    分享一款免费的工控组态软件(PCHMI)
  • 原文地址:https://www.cnblogs.com/QingyuYYYYY/p/11620918.html
Copyright © 2020-2023  润新知