stl总结精简版

STL 精简版

 

vetor

 1 #include<vector>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<iostream> 
 5 using namespace std;
 6 int main()
 7 {
 8     vector <int> a;//定义一维数组
 9     vector <int *> tm; //定义二位数组
10     int b = 5;
11     a.push_back(b);//在数组的最后添加一个数据
12     a.push_back(1);
13     a.push_back(2);
14     a.pop_back();//去掉数组的最后一个数据
15     cout<<a.at(1)<<endl;//得到编号位置的数据 
16     vector<int>::iterator it;
17     for(it = a.begin(); it != a.end(); it++){
18         printf("%d ",*it);
19     }
20     puts("");
21     printf("front = %d; back = %d\n",a.front(),a.back());
22     it = a.begin();
23     a.erase(it);//删除指针数据项
24     for(int i = 0; i < a.size(); i++){
25         printf("%d ",a[i]);
26     }
27     puts("");
28     a.clear();//清空 
29     if(a.empty()) puts("now its over");
30     return 0;
31 }

 

 set

 1 #include<set>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<cstring>
 5 using namespace std;
 6 struct Node{
 7     char str[100];
 8     bool operator < (const Node a) const {
 9         return (strcmp(str,a.str) <= 0);
10     }
11 };
12 int main()
13 {
14     set<int>s;
15     s.insert(1);
16     s.insert(2);
17     s.insert(3);
18     //set中不会有重复的元素,所以我们如果需要去重,直接丢到set里是不错的选择
19     //set可以定义比较函数,因为set可以通过中序遍历直接从小到大的排序输出
20     
21     //中序遍历
22     set<int>::iterator it;
23     for(it = s.begin(); it != s.end(); it++){
24         printf("%d ",*it);
25     } 
26     puts("");
27     s.erase(2);//删除键值为2的元素
28     printf("find(3) = %d\n",s.find(3));
29     for(it = s.begin(); it != s.end(); it++){
30         printf("%d ",*it);
31     } 
32     puts("");
33     s.clear();//清空set 
34     if(s.empty()) puts("Now its over");
35     
36     set<Node> n;
37     Node tm;
38     tm.str[0] = 's'; tm.str[1] = 'o';tm.str[2] = 0;
39     n.insert(tm);
40     Node tm2;
41     tm2.str[0] = 'g'; tm2.str[1] = 'e';tm2.str[2] = 0;
42     printf("%d\n", (tm < tm2));
43     printf("%d\n", (strcmp("ge", "so")));
44     tm.str[0] = 'g'; tm.str[1] = 'e';tm.str[2] = 0;
45     n.insert(tm);
46     tm.str[0] = 's'; tm.str[1] = 'i';tm.str[2] = 0;
47     n.insert(tm);
48     tm.str[0] = 'b'; tm.str[1] = 'e';tm.str[2] = 0;
49     n.insert(tm);
50     tm.str[0] = 'd'; tm.str[1] = 'n';tm.str[2] = 0;
51     n.insert(tm);
52     set<Node>::iterator p;
53     for(p = n.begin(); p!=n.end(); p++ ){
54         printf("%s ",(*p).str);
55     }
56      puts("");
57     return 0;
58 }

 stack

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 #include<stack>
 5 using namespace std;
 6 
 7 int main()
 8 {
 9     stack<int> st;
10     st.push(1);
11     st.push(2);
12     st.push(3);
13     while(!st.empty()){
14         printf("%d ", st.top());
15         st.pop();
16     }
17     puts("");
18     printf("size = %d\n",st.size());
19     return 0;
20 }

 queue

 1 #include<cstdio>
 2 #include<queue>
 3 using namespace std;
 4 int main()
 5 {
 6     queue<int> qu;
 7     for(int i = 0; i < 5; i++){
 8         qu.push(i);
 9     }
10     printf("front = %d; back = %d\n",qu.front(), qu.back());
11     while(!qu.empty()){
12         printf("%d ",qu.front());
13         qu.pop();
14     }
15     puts("");
16     printf("size = %d\n",qu.size());
17     return 0;
18 }

 priority_queue

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<queue>
 4 using namespace std;
 5 int main()
 6 {
 7     priority_queue<int> q;
 8     for(int i = 0;i < 9; i++) q.push(i);
 9     while(!q.empty()){
10         printf("%d ",q.top());
11         q.pop();
12     }
13     puts("");
14     return 0;
15 }

 

posted on 2017-09-14 14:34  若流芳千古  阅读(252)  评论(0编辑  收藏  举报

导航