C++从零开始
重拾C++
formst001
这个作者很懒,什么都没留下…
展开
-
C++序列式容器(五):queue
queue,队列,是一种先进先出的数据结构,有两个出口。允许新增元素,移除元素,从最底端加入元素,取得最顶端元素,但除了底端加入,顶端取出外,没有任何其他方法可以存取queue的其他元素。不允许有遍历行为。默认是以deque作为底层容器,也可以使用list作为底层容器。因为list也是双向开口的数据结构,支持empty,size,back,push_front,push_back,pop_fro...原创 2020-03-13 15:03:22 · 98 阅读 · 0 评论 -
C++序列式容器(四):stack
stack是一种先进后出的数据结构,只有一个出口。允许新增元素,移除元素,取得最顶端元素,但除了最顶端外,没有任何其他方法可以存取stack的其他元素。不允许有遍历行为。默认是以deque作为底层容器,也可以使用list作为底层容器。因为list也是双向开口的数据结构,支持empty,size,back,push_back, pop_back等方法。...原创 2020-03-13 14:36:51 · 63 阅读 · 0 评论 -
C++序列式容器(三):deque
1. 概述deque是双向开口的连续线性空间,可以在头尾两端分别做插入和删除操作。主要维护了一块map(不是stl的map)作为主控。map是一小块连续空间,每个节点都指向另一段连续性空间,也称缓冲区。该缓冲区即是存储空间主体。当map满载,则会分配更大的空间作为map。其主要结构体如下: class deque{ public: typedef T value_type; typ...原创 2020-03-13 11:49:03 · 106 阅读 · 0 评论 -
c++序列式容器(二):list
1. 实现原理list由一个环状的双向链表构成,存有一个node指针,指向置于尾端的空白节点,从而满足stl“前闭后开”的规范。方法begin返回的是(*node).next,方法end返回的即是node自身。常用方法有:push_front, push_back 从前和后插入节点erase 移除节点pop_front, pop_back 移除头,尾节点clear 通过node遍历节点并...原创 2020-03-12 20:56:41 · 107 阅读 · 0 评论 -
c++序列式容器(一):Vector
1. 概述Vector维护的是一个连续的线性空间,有三个比较重要的指针,start指向目前使用空间的头,finish指向目前使用空间的尾,end_of_storage指向目前可用空间的尾。增加新元素的时候,如果备用空间不够,会将容量扩容到两倍。会经历“重新配置,元素移动,释放原空间”等过程,因此,扩容的时候效率会比较低,还需注意扩容后外部代码保存的iterator指针指向的还是旧的节点指针。2...原创 2020-03-12 16:47:47 · 124 阅读 · 0 评论