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 }
  • 相关阅读:
    宏定义问题
    (转载)(int)a、&a、(int)&a、(int&)a的区别,很偏僻的题
    boolalpha的作用
    一些小细节
    HTTP Keep-Alive的作用
    数据库三大范式
    laravel 安装语言包
    MySQL存储引擎中的MyISAM和InnoDB区别详解
    推荐一款超好用的工具cmder
    如何保证代码质量
  • 原文地址:https://www.cnblogs.com/ECJTUACM-873284962/p/6752725.html
Copyright © 2011-2022 走看看