标签:一个 元素 include printf 读取 nod code second 字典序
内容
- vector:不定长数组
- map:映射
- queue:队列
- sort:排序
- priority_queue:优先队列
vector:不定长数组
1 #include 2 #include 3 #include //相关头文件
4 using namespace std;
5
6 int main(){
7 //vector(不定长数组)用法介绍
8 vectorint> G; //创建vector
9 G.push_back(5); //加入元素5, 类似于栈
10 G.push_back(3); //加入元素3
11 G.push_back(7); //加入元素7
12 //这时vector里面有元素: 5, 3, 7
13
14 //访问
15 int a;
16 a = G[0]; //a被赋值为vector里面的第一个元素,即a = 5
17 a = G[1]; //a被赋值为vector里面的第二个元素,即a = 3
18
19 //获得vector的大小: G.size() //这里是遍历vector里面的元素
20 for(int i = 0; i ){
21 printf("%d\n", G[i]);
22 //这里G.size() == 3, 所以输出G[0], G[1], G[2]
23 }
24 printf("\n");
25
26 //高级用法: vector数组
27 vectorint> g[3];
28 //这里创建了3个vector, 其中分别是g[0], g[1], g[2]
29 g[1].push_back(4); //向g[1]这个vector加入元素4
30 g[1].push_back(1); //向g[1]这个vector加入元素1
31
32 //访问
33 a = g[1][0]; //a被赋值为g[1]里面的第一个元素,即a = 4
34 a = g[1][1]; //a被赋值为g[1]里面的第二个元素,即a = 1
35
36 for(int i = 0; i 1].size(); i++){
37 printf("%d\n", g[1][i]);
38 //这里g[1].size() == 2, 所以输出g[1][0], g[1][1]
39 }
40
41 return 0;
42 }
map:映射
1 #include 2 #include 3 #include
queue:队列
1 #include 2 #include 3 #include 4 using namespace std;
5
6 int main(){
7 //queue基本用法
8 queueint> q; //创建一个先进先出的队列(也就是这个队列只能在尾部加入元素, 头部取出元素, 这个是关键)
9 q.push(1); //加入元素1
10 q.push(2); //加入元素2
11 q.push(3); //加入元素3
12 //这时队列是: 1, 2, 3
13
14 //访问
15 int a;
16 a = q.front(); //这时q.front()的值为1, 所以a = 1, 注意这里只是读取队列首元素, 并没有弹出元素
17 cout endl;
18 a = q.front();
19 cout endl;
20
21 //弹出
22 q.pop(); //弹出队列的首元素, 也就是变成2, 3
23 a = q.front();
24 cout endl;
25
26 //判断队列是否为空
27 q.pop(); //弹出队列的首元素, 也就是变成3
28 q.pop(); //弹出队列的首元素, 此时队列为空
29 if(q.empty()) cout "Yes\n"; //如果队列为空, 则q.empty()为真, 则输出"Yes"
30 if(q.size() == 0) cout "Yes\n"; //如果队列大小为0, 则输出"Yes"
31
32 return 0;
33 }
sort:排序
1 #include 2 #include 3 #include
4 using namespace std;
5 //先从主函数看
6
7 struct node{
8 int first, second;
9 };
10
11 bool cmp1(int x, int y){
12 return x > y; //从大到小排
13 }
14
15 bool cmp2(int x, int y){
16 return x //从小到大排
17 }
18
19 bool cmp_node(node x, node y){
20 if(x.first == y.first) return x.second y.second;
21 else return x.first y.first;
22 //这里的意思: 优先对结构体的第一个值进行排序, 如果第一个值相等, 就按照第二个值进行排序
23 }
24
25 int main(){
26 //sort的用法
27 int a[5] = {5,4,3,2,1};
28 sort(a, a+5); //默认对数组a进行从小到大排序
29 for(int i = 0; i 5; i++){
30 cout " ";
31 }
32 cout endl;
33
34 string s[3] = {"bcd", "abc", "a"};
35 sort(s, s+3); //默认对字符串进行字典序排序
36 for(int i = 0; i 3; i++){
37 cout endl;
38 }
39 cout endl;
40
41 //自定义比较级(比较函数):
42 sort(a, a+5, cmp1); //按cmp1的比较级排序, 注意这里cmp1后面不能加()
43 for(int i = 0; i 5; i++){
44 cout " ";
45 }
46 cout endl;
47
48 sort(a, a+5, cmp2); //按cmp2的比较级排序
49 for(int i = 0; i 5; i++){
50 cout " ";
51 }
52 cout endl;
53
54 cout endl;
55 //对结构体进行排序
56 node G[3] = {{5,3}, {5, 2}, {1, 9}};
57 sort(G, G+3, cmp_node); //按照cmp_node进行排序
58 for(int i = 0; i 3; i++){
59 printf("G[%d]: %d %d\n", i, G[i].first, G[i].second);
60 }
61 cout endl;
62
63 return 0;
64 }
priority_queue:优先队列
暂更
常用的C++ STL
标签:一个 元素 include printf 读取 nod code second 字典序
原文地址:https://www.cnblogs.com/happy-MEdge/p/11000156.html