c++ vector 先进先出_C++ STL Vector(容器)学习

本文参考博客链接及书籍:

侯捷老师的《STL 源码剖析》

在C++标准库中,STL容器是一些常用数据结构的实现,比如数组、链表、树、栈、队列、散列表、集合、映射表等,可以分为序列式(sequence) 和关联式(associative)两种。侯捷老师的STL源码解析一书中的图表示的很明确。

一、序列式容器(sequence)

序列式容器中的元素都可以排序,但是并非有序,array是C++语言本身提供的序列式容器,而STL另外提供了cector,list,deque,stack,queue,priority-queue等序列式容器。

1、  Vector

主要特点:动态空间,随着元素的加入自动扩充空间容纳新元素;必须注意的是,所谓动态增加大小并不是在原空间之后连续新空间,因为新空间可能已经用完了,或是不足以分配足够的空间,而是以原始数据大小的两倍另外配置一块较大的空间,并将原内容拷贝过来,然后才开始在原内容之后构造新元素,并释放原始空间。即容量的扩张必须经历“重新配置,元素移动,释放原空间”等操作。在对vector的操作中,如果出现空间重新配置,指向原vector的所有的迭代器均会失效。

(1)、vector的迭代器

Vector维护的是连续线性空间,普通指针可以作为其迭代器进行随机存取,因此vector提供的是Random Access Iterators。<

你可能感兴趣的:(c++,vector,先进先出)