STL
chenchen216
这个作者很懒,什么都没留下…
展开
-
C++ pair的基本用法总结(整理)
pair<T1, T2> p1; //创建一个空的pair对象(使用默认构造),它的两个元素分别是T1和T2类型,采用值初始化。pair<T1, T2> p1(v1, v2); //创建一个pair对象,它的两个元素分别是T1和T2类型,其中first成员初始化为v1,second成员初始化为v2。make_pair(v1, v2); ...原创 2020-03-01 19:20:14 · 619 阅读 · 0 评论 -
STL——map、set等红黑树结构的最后一个元素
map、set等背后由于红黑树的关系,插入元素后便成为“平衡”搜索树了,所以末尾元素默认为最大值,得到该值的方法:1. 利用 rbegin() 反向迭代器int main(int argc, char *argv[]){ map<int,int>ans; ans.insert(pair<int, int>(2,0)); ans.inser...原创 2019-10-22 21:30:51 · 2310 阅读 · 0 评论 -
STL——set常见用法
1.头文件#include<list>;2.定义经常使用的如下:set<int> s1; //创建空的set set<int> s1(s2); //利用set对象s2,拷贝生成3.常用操作函数3.1.set长度set<int> s1;int len = s1.size(); /...原创 2019-10-04 22:31:22 · 435 阅读 · 0 评论 -
make_heap(), pop_heap(), push_heap()用法
对make_heap(), pop_heap(), push_heap()的用法做个总结:需要添加头文件:#include<algorithm>make_heap()make_heap(_RAIter,_RAIter),make_heap(_RAIter,_RAIter,_Compare)生成堆,他有两个参数,也可以有三个参数,前两个参数是指向开始...转载 2019-04-17 12:59:15 · 242 阅读 · 0 评论 -
C++ list, vector, map, set 区别与用法比较
一.list和vectorList封装了链表,Vector封装了数组, list和vector得最主要的区别在于vector使用连续内存存储的,他支持[]运算符,而list是以链表形式实现的,不支持[]。Vector对于随机访问的速度很快,但是对于插入尤其是在头部插入元素速度很慢,在尾部插入速度很快。List对于随机访问速度慢得多,因为可能要遍历整个链表才能做到,但是对于插入就快的多...转载 2019-04-13 22:26:05 · 2378 阅读 · 0 评论 -
C++ vector、array和数组的比较
在c++11中,STL中提拱了一个新的容器std::array,该容器在某些程度上替代了之前版本的std::vector的使用,更可以替代之前的自建数组的使用。那针对这三种不同的使用方式,先简单的做个比较:相同点:三者均可以使用下表运算符对元素进行操作,即vector和array都针对下标运算符[]进行了重载 三者在内存的方面都使用连续内存,即在vector和array的底层存储结构均...转载 2019-04-13 22:10:27 · 1508 阅读 · 0 评论 -
哈希表冲突及处理方法
一、哈希函数和哈希冲突的基本概念1.哈希函数:哈希法又称散列法、杂凑法以及关键字地址计算法等,相应的表成为哈希表。基本思想:首先在元素的关键字K和元素的位置P之间建立一个对应关系f,使得P=f(K),其中f成为哈希函数。创建哈希表时,把关键字K的元素直接存入地址为f(K)的单元;查找关键字K的元素时利用哈希函数计算出该元素的存储位置P=f(K).2.哈希冲突:当关...转载 2019-04-13 21:15:34 · 1591 阅读 · 0 评论 -
STL——list常见用法
list是C++标准模版库(STL,Standard Template Library)中的部分内容。实际上,list容器就是一个双向链表,可以高效地进行插入删除元素,但是随机访问却比较慢。使用list容器之前必须加上STL的list容器的头文件:#include<list>;二、List定义和初始化:list<int>lst1;...转载 2019-04-13 13:50:51 · 545 阅读 · 0 评论 -
C++ map用法总结
1,map简介map是STL的一个关联容器,它提供一对一的hash。第一个可以称为关键字(key),每个关键字只能在map中出现一次; 第二个可以称为该关键字的值(value);map以模板(泛型)方式实现,可以存储任意类型的数据,包括使用者自定义的数据类型。Map主要用于资料一对一映射(one-to-one)的情況,map內部的实现自建一棵红黑树,这颗树具有对数据自动排序的功能。在m...转载 2019-04-10 12:43:08 · 7814 阅读 · 0 评论 -
STL容器底层实现数据结构
1、vector容器底层数据结构为数组 ,支持快速随机访问2、List底层数据结构为双向链表,支持快速增删3、dequedouble ended queue缩写,底层数据结构为双端队列。如下图4、stack底层一般用list或deque实现,封闭头部即可,不用vector的原因应该是容量大小有限制,扩容耗时5、queu...转载 2019-04-05 11:12:41 · 822 阅读 · 0 评论 -
STL——queue模板类常见函数
#include<queue>//包含头文件建立queuequeue<int> que;//建立一个queue1、获取queue里的元素个数int len = que.size();2、queue常见函数que.back(); 返回最后一个元素que.empty(); 如果队列空则返回真que.front();...转载 2019-04-06 14:48:24 · 1000 阅读 · 0 评论 -
STL——Stack常见用法
Stack(栈)是一种后进先出的数据结构,也就是LIFO(last in first out) ,最后加入栈的元素将最先被取出来,在栈的同一端进行数据的插入与取出,这一段叫做“栈顶”。使用STL的stack需要include一个头文件<stack>常见用法:push()会将一个元素放入stack中。(遵从先进后出) top()会返回stack中的栈顶元素,返回的是ref...转载 2019-03-31 10:21:20 · 311 阅读 · 0 评论 -
STL——Vector模板类常见函数
由于经常在做题中遇到,所以记录下:#include<vector>//包含头文件建立Vectorvector<int> test;//建立一个vector1、获取vector里的元素个数int len = vec.size();2、向vector添加元素int temp;vec.push_back(temp);//尾插...转载 2019-03-26 18:58:26 · 877 阅读 · 0 评论 -
STL介绍(一)
STL 是什么STL = Standard Template Library,首先他是一个 Library,也就是一个函数库,就像大家以前用的函数sin/random等来自数学库,printf/fopen/fread/fwrite等来自 io 库, strcpy/strcmp/strcat 等来自己字符串库。库避免了重复造轮子,提高了开发效率。 其次,就是 Template,中文是模板的意思...转载 2019-03-24 19:16:56 · 238 阅读 · 0 评论