set的基本使用

来源:互联网 发布:人才系统java源码 编辑:程序博客网 时间:2024/04/29 10:55

    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、清空——clare();

 7、判空——empty();

 8、大小——size();

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

 

L2-014. 列车调度

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

#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include <queue>#include <stack>#include <math.h>#include <vector>#include <set>using namespace std;typedef long long LL;const int inf = 0X3f3f3f3f;const int Max = 10000;int main(int argc, char** argv) {  int i, j, k;  int n, x;  set<int>s;  cin>>n;  for(i = 0; i < n; i++)  {    cin>>x;    if(s.empty())    {      s.insert(x);    }    else    {      set<int>::iterator it;      it = s.lower_bound(x);      if(it == s.end())      {        s.insert(x);      }      else      {        s.erase(it);        s.insert(x);      }    }  }  int t = s.size();  cout<<t<<endl;  return 0;}


0 0