zoukankan      html  css  js  c++  java
  • C++STL中set的使用策略(详解)

    set的英文意思是“集合”, 集合都不陌生吧,集合的特点有唯一性,即:每一个元素只有一个,所以set可以用来“去重”操作,set还有默认的排序。

     1、头文件——<set>

     2、定义——set<int>Q;

     3、输入(插入)——insert(x);

     4、有序输出

     set<int>::iterator it;

     for(it = Q.begin(); it != Q.end(); it++)

     cout<<*it<<endl;

     5、删除制定元素——erase(x);

     6、清空——clear();

     7、判空——empty();

     8、大小——size();

     9、二分查找——Q.lower_bound(x);

     

    L2-014. 列车调度

    Pat上的一个题目,用set完美的解决了。

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int main()
     4 {
     5     int i,j,k,n,x;
     6     set<int> s;//定义一个名为s的集合
     7     while(cin>>n)
     8     {
     9         for(int i=0;i<n;i++)
    10         {
    11             cin>>x;
    12             if(s.empty())//判断集合s是否是空集
    13             {
    14                 s.insert(x);//是的话向集合s插入一个元素x
    15             }
    16             else
    17             {
    18                 set<int>::iterator it;//定义一个set型的迭代器
    19                 it=s.lower_bound(x);//进行二分查找
    20                 if(it==s.end())
    21                 {
    22                     s.insert(x);//插入一个元素x
    23                 }
    24                 else
    25                 {
    26                     s.erase(it);//删除制定元素it
    27                     s.insert(x);//插入一个元素x
    28                 }
    29             }
    30         }
    31         int t=s.size();//集合s的大小
    32         cout<<t<<endl;
    33     }
    34     return 0;
    35 }
  • 相关阅读:
    为Mac Terminal设置代理
    Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo
    vue.js环境搭建
    nodejs实现的简单接口
    Runtime
    iOS -- 神战
    前端视频
    iOS-- 重要的链接
    Oracle 11g R2安装手册(图文教程)For Windows
    undo_retention:确定最优的撤销保留时间
  • 原文地址:https://www.cnblogs.com/ECJTUACM-873284962/p/6752725.html
Copyright © 2011-2022 走看看