C++
文章平均质量分 82
_zSir
To be or not to be, that is not a question.
To be better.
展开
-
STL学习--顺序容器操作
简介顺序容器内的元素按其位置存储和访问,STL中顺序容器有vector、list和deque。同时也提供了容器适配器stack、queue和priority_queue。顺序容器类型顺序容器vector 支持快速随机访问list 支持快速插入/删除deque 双端队列原创 2016-10-19 14:31:29 · 500 阅读 · 0 评论 -
STL学习--vector
简介vector的数据结构为连续的线性空间,支持快速随机访问。在配置大小时可能会比需求的更大一些,这便是容量(capacity)概念。特性vector实际分配的空间小于等于其容量(capacity)。vector支持快速随机访问,但插入删除效率较低。面试题1. vector::erase()问题。要点:erase后会指向删除元素的下一个元素。原创 2016-10-19 18:48:57 · 1030 阅读 · 0 评论 -
STL学习--list
简介list是一个环状链表,在链表的结尾用一个空白结点代替(即结点的值为空)。区别于vector的连续空间,list在每次添加和删除元素时,都会进行内存的申请和释放。特性list添加或删除元素时都会进行内存申请和释放list支持快速插入和删除,但随机访问效率很低面试题1. vector和list的区别。要点:内存空间,随机访问,插入删除。http:/原创 2016-10-20 13:36:57 · 345 阅读 · 0 评论 -
STL学习--deque
简介deque是一种双向开口的连续空间,可以在头尾两端进行添加和删除操作。不同与vector的是deque是一段段的连续空间,这些连续空间由中控器map(不是stlmap)管理,以提供一种类似的连续性。缓冲区大小为512。中控管理图:特性deque两端都可以快速的插入和删除元素deque可以进行随机存取,但存取速度比vector慢面试题1.原创 2016-10-20 13:41:42 · 934 阅读 · 0 评论 -
STL学习-map
简介map是键-值对的集合。map为关联容器,可以通过键作为下标来获取一个值,正如内置数组类型一样。map的底层实现基于RB-Tree。特性map是键-值的集合。map根据键值自动排序。map中每个键值即元素都是唯一不重复的。map中key必须是有序的,支持key与key之间的比较。map中可以通过迭代器改变实值,但不可以通过迭代器改变键值。map中原创 2016-10-21 10:27:52 · 557 阅读 · 0 评论 -
STL学习--set
简介map是键-值的集合,而set是单纯的键的集合。set不支持下标操作,value_type不是pair类型而是于key_type相同的类型。set底层实现为RB-Tree。特性set根据键值自动排序。set中键值是唯一不重复的。set的迭代器在STL中被定义为const_iterator,因此不能通过迭代器来改变键值。set的插入和删除操作只影响当前键值迭代原创 2016-10-21 10:31:09 · 529 阅读 · 0 评论 -
STL学习--stack
简介stack是一中后入先出(LIFO)的数据结构,它只有一个出口,只可以对顶端元素进行操作。STL底层默认基于deque容器实现。在创建适配器时,通过将一个顺序容器指定为适配器的第二个类型实参,可覆盖默认的容器类型。stack > str_stk; // 由vector实现的stackstack > str_stk; // 由list实现的stackstack原创 2016-10-21 10:33:23 · 412 阅读 · 0 评论 -
STL学习--queue priority_queue
简介queue是一种先入先出(FIFO)的数据结构,它有两个出口,允许从底端加入元素,从顶端移除元素。STL底层默认基于deque容器实现,可在创建是更改list:queue > str_queue; // 由list实现的queuepriority_queue是拥有权值的queue,其内部元素不是按照添加的顺序排列,而是按照权值排列(权值默认为元素值),权值高的拍在前原创 2016-10-21 10:35:57 · 1547 阅读 · 0 评论