C/C++解题常用STL大礼包 含vector,map,set,queue含优先队列 ,stack的常用用法

每次忘记都去查,真难啊

  1 /*
  2 C/C++解题常用STL大礼包 含vector,map,set,queue(含优先队列) ,stack的常用用法 
  3 */
  4 
  5   6     vector常用用法 
  7   8 //头文件
  9 #include<vector>        
 10  
 11 常用的初始化方法         
 12 vector<int> v;            直接定义一个整型元素的向量 且未声明长度,其中int的位置可以换成别的数据类型或者结构体等 
 13 vector<int> v(10);        定义了10个整型元素的向量,其中每一个数都没有初值
 14 vector<10,5);    定义了10个整型元素的向量,并且为每个元素赋初值5 
 15 
 16 常用的操作
 17 v.back();                返回最后一个元素
 18 v.front();                返回第一个元素
 19 v.clear();                清空v中的元素
 20 v.empty();                判断v是否为空,空则返回true,否则false
 21 v.push_back(5);            在最后的一个元素后插入5 
 22 v.size();                返回v中的元素的个数 
 23 
 24 sort(v.begin(),v.end(),cmp);    sort排序,其中cmp部分与结构体等数据类型自定义排序时cmp相同用法 
 25 
 26 for(int i = 0; i < v.size(); i++){    遍历 
 27     printf("%d\n",v[i]);
 28 } 
 29 
 30  31     map常用用法 
 32  33  34 #include<map>
 35 
 36 常用操作 
 37 map<int,int> m;        初始化 
 38 m[1] = 5;                以数组形式插入值 
 39 m[2] = 6;
 40 m[1]++;                    可以参与运算 
 41 m[2] += 2 42 cout<<m[1]<<endl;
 43 cout<<m[2]<< 44 
 45  46     set常用用法 set中的元素自动从小到大排序,且合并重复元素 
 47  48  49 #include<set>
 50 
 51 常用操作
 52 set<int>s;        定义 
 53 s.insert(x);    插入数值 
 54 s.clear();         删除set容器中的所有的元素
 55 s.empty();        判断set容器是否为空
 56 
 57 int>::iterator it;                 58 for(it = s.begin(); it != s.end(); it++)
 59 {
 60     printf(",*it); 
 61 }
 62 
 63 s.end()没有值
 64 cout<<s.begin()   "<<*s.begin()<< 65 lower_bound()--返回指向大于(或等于)某值的第一个元素的迭代器
 66 cout<<lower_buond  3  "<<*s.lower_bound(3)<< 67 upper_bound()--返回大于某个值元素的迭代器
 68 cout<<upper_bound  3  "<<*s.upper_bound( 69 find()--返回一个指向被查找到元素的迭代器
 70 cout<<find(3)   "<<*s.find( 71 cout<<s.size()  "<<s.size()<<endl; 
 72 
 73  74     queue常用用法 
 75  76  77 #include<queue>
 78 
 79 常用操作对于普通队列来说
 80 queue<int> q;        定义一个队列
 81 q.front();            获取队首元素 
 82 q.pop();            删除队首元素 
 83 q.empty();            判断队列是否为空 
 84 q.push(5);             向队列中加入元素 
 85 
 86 priority_queue 
 87 priority_queue<int> q;    定义一个优先队列
 88 q.top();            获取队列中最大元素(首个)
 89 q.pop();            删除最大元素(队首)
 90 q.push(x);            向队列中加入元素
 91 q.empty();            判断优先队列是否为空 
 92 
 93 对于结构体而言,需要重载小于号(优先队列按照从大到小排序) 
 94 priority_queue<Node> q; 
 95 
 96 struct Node{
 97     int a,b;
 98     bool operator < (const Node & x) const
 99     {
100         return a > x.a;
101     }
102 }; 
103 
104 105     stack常用用法 
106 107 108 #include<stack>
109 
110 111 stack<int> s;        定义一个栈
112 s.pop();            删除栈顶元素
113 s.top();            获取栈顶元素
114 s.empty();            判断栈是否为空
115 s.push(向栈中压入5

 

相关文章

一.C语言中的static关键字 在C语言中,static可以用来修饰局...
浅谈C/C++中的指针和数组(二) 前面已经讨论了指针...
浅谈C/C++中的指针和数组(一)指针是C/C++...
从两个例子分析C语言的声明 在读《C专家编程》一书的第三章时...
C语言文件操作解析(一)在讨论C语言文件操作之前,先了解一下...
C语言文件操作解析(三) 在前面已经讨论了文件打开操作,下面...