STL
C++的STL库。
嘻嘻作者哈哈
喜欢折腾技术。寒窗苦读无人晓,一朝成名天下知。
展开
-
string容器部分API复习(C++)
注: 文章为本人为方便复习而写,若有朋友要参考,本文的不清楚的地方可以留言,也可以参考其他网页。#include<iostream>#include<string>using namespace std;//存数据:初始化和赋值APIvoid test_one(){ string str1("hello zhangqu"); //初始化 cout <...原创 2019-03-06 16:21:56 · 245 阅读 · 0 评论 -
list容器部分API
list容器是循环双链表,因为存储空间不连续,所以他的迭代器不支持随机访问,进行排序时不能使用algorithm 里的sort,使用list自身的成员函数sort进行排序.#include<iostream>#include<list>#include<string>using namespace std;//list是一个双向循环链表,list迭代...原创 2019-03-13 10:32:23 · 222 阅读 · 0 评论 -
hdu oj2034 逆向思维解决(set 和 map搞定)
原因:因为set和map都是关联式容器,可以按键值自动排序,可以省掉使用其他容器所消耗的排序时间。1.map实现:思路:用键值作为A集合的数据,实值作为判断是否在集合在B集合的标志。在输入集合B中的数据时判断集合B的元素是否和集合A重复,如果重复则将改变重复元素对应的对组实值。#include<iostream>#include<map>using namespa...原创 2019-03-17 23:45:58 · 194 阅读 · 0 评论 -
对数器(C++的vector实现)
使用步骤:1.写出你要测试的算法,这里以从大到小的快速排序为例template<typename T>void quicksort(vector<T>& vec, int start, int end){ T key=vec[end]; //将枢纽值保存,枢纽值一趟排序就放在了最终位置,之前的数据大于他,之后的数据小于他 int i=e...原创 2019-03-21 11:06:01 · 1040 阅读 · 0 评论 -
stack容器和queue容器常见API
注意:栈和队列不支持遍历操作,不支持下标访问元素。话不多说,直接来代码。1.stack容器include<iostream>#include<stack>using namespace std;//stack, 先进后出,只能从栈顶入从栈顶出,不支持遍历操作,也不能按下标访问数据,所以使用stack和队列是要注意规则void test_one(){ ...原创 2019-03-12 19:06:17 · 251 阅读 · 0 评论 -
hdu oj 2031(十进制转为其他进制)
题目:hdu oj 2031思路和代码注释如下:#include<iostream>#include<stack>using namespace std;//十进制转换为2~16进制//思路:1.用该数不断对目标进制不断求余,将余数保存,之后用商(取整)继续求余,直到商为0为止//2.因为最后是逆序输出,所以很适合栈先进后出的访问规则,所以我就用了stl里的...原创 2019-03-16 20:29:50 · 388 阅读 · 0 评论 -
stl容器的对比与应用场景
1.使用场景:vector: 可以高效的随机存取或需要查询元素,不经常进行插入和删除list:需要经常或大量的插入和删除,不需要随机存取deque: 需要随机存取,且需要在两端进行插入和删除set:快速查找一个元素是否在某集合中,使用findmap:存储数据字典,需要方便的通过键值key查找和修改实值value2.性能对比:...原创 2019-03-20 13:04:20 · 380 阅读 · 0 评论 -
C++里map/multimap部分API总结
1.map容器是一种关联式容器,在插入数据时会根据键值进行排序插入。2.map容器的每一个元素都是对组,pair<key, value>,其中第一个key为键值,第二个value为实值。3.键值不可以修改,实值可以修改,可以使用at(key)来访问实值.4.map的迭代器不支持随机访问。5.map的键值不允许重复,而multimap的键值可以重复.#include<io...原创 2019-03-15 14:55:16 · 995 阅读 · 0 评论 -
集合set/multiset容器部分API总结
1.set容器是一种关联式容器,在插入数据时会根据键值进行排序,不允许出现重复的键值。2.set容器不能通过迭代器来修改键值,其迭代器不支持随机访问.3.multiset允许键值重复#include<iostream>#include<set> //set 或 multiset#include<string>using namespace...原创 2019-03-15 14:44:49 · 269 阅读 · 0 评论 -
stl里反转函数(reverse)总结
总结:0.algorithm 里的反转函数接口:reverse(first,last) 参数为容器的迭代器起始位置和终止位置1.string和vector只能使用模板库算法里的反转函数2.list可以使用算法里的和list类的reverse3.stack和queue没有迭代器,自然不能使用算法里的reverse,其类也没有提供反转的成员函数4.set和map的元素是按照键值排序的,不能修...原创 2019-03-15 09:59:13 · 6561 阅读 · 0 评论 -
deque容器部分API
deque:双端队列。是一种具有队列和栈的性质的数据结构,双端数组.注: 文章为本人为方便复习而写,若有朋友要参考,本文的不清楚的地方可以留言,也可以参考其他网页。#include&lt;iostream&gt;#include&lt;deque&gt;using namespace std;//双端数组void print(const deque&lt;int&gt;&amp;原创 2019-03-10 15:35:58 · 279 阅读 · 0 评论 -
C++的vector容器
注: 文章为本人为方便复习而写,若有朋友要参考,本文的不清楚的地方可以留言,也可以参考其他网页。#include<iostream>#include<vector>#include<list>using namespace std;//容量与实际数据量void test_one(){ vector<int> v; for (in...原创 2019-03-06 21:16:23 · 181 阅读 · 0 评论 -
C++使用库函数查找最大值和最小值操作
头文件:< algorithm >1.两个数找最小值: int min_data = min(10,20); cout<< "min_data:" << min_data <<endl; //102.找一个系列里的最小值 (使用initializer_list<>)//利用min( {} ) min_data = m...原创 2019-03-26 22:14:33 · 26844 阅读 · 0 评论