C/C++解题常用STL大礼包 含vector,map,set,queue(含优先队列
发布时间:2021-05-20 08:09:37 所属栏目:大数据 来源: https://www.cnblogs.com/YLTFY
导读:每次忘记都去查,真难啊 1 /* 2 C/C++解题常用STL大礼包 含vector,map,set,queue(含优先队列) ,stack的常用用法 3 */ 4 5 6 vector常用用法 7 8 // 头文件 9 #includevector 10 11 常用的初始化方法 12 vector int v; 直接定义一个整型元素的向量 且未
每次忘记都去查,真难啊
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("%dn",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 ? (编辑:北几岛) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |