deque 链表 STL基本容器的输入输出与初始化接口 map stack vector 树等 C (的却良)
本文目录导航:
C++ STL基本容器的输入输出与初始化接口(vector、deque、stack,map、链表、树等)
编程中的高效工具,C++ STL容器功能强大,让我们直接来看它们的核心接口:

STL容器—deque使用技巧
std::deque是一种双端队列,提供快速在两端插入和删除元素的能力。
与std::vector不同,deque的元素非连续存储,通过一系列分配固定大小的数组实现,同时进行额外的管理。
这意味着访问deque的索引需要两次指针解引用,而vector则只需要一次。
deque的存储会自动根据需要调整大小,扩展比vector便宜,因为它无需复制现有元素到新位置。
然而,deque的内存成本相对较高,即使只存储一个元素,也需要分配整个内部数组(如64位libstdc++中8倍的对象大小;在64位libc++中,可能更大,至少为4096字节)。
在时间复杂度方面,deque在尾部和头部插入和删除的复杂度为O(1),实际上比vector稍慢。
在手动内存清理方面,deque与vector类似,可以使用swap()接口释放内存。
在C++11之后,deque添加了shrink_to_fit()接口,因此也可以手动释放内存。
在选择deque还是vector时,vector通常应作为默认序列类型。
deque在序列大部分插入和删除发生在两端时是最佳选择。
因此,存储大量数据时,我认为使用deque的优先级高于vector,对于少量数据则应尽量使用vector。
有趣的是,标准库中的栈(std::stack)实现默认使用deque,尽管栈只涉及单端数据的插入和删除。
stl中deque怎么读?
在STL库中,deque是一种容器类型,代表双端队列。
deque的发音在英语中存在不同的版本,常见的有 戴克、迪Q、大可 等。
其中,戴克 为全称发音方式,较为严谨。
提问者认为如此读音容易引起误解,因此每次会念出全称 double-ended queue。
实际上,身边人对于deque的读音存在多样化,有人选择简单的 迪Q 或 大可。
这种情况下,主要取决于个人习惯和交流环境,并不会对理解造成实质影响。
在日常编程交流中,直接称呼deque为双端队列更为直接简洁。
在国际交流中,尤其是在编程社区或论坛,不少人仍然倾向于用 deck 这个简化的发音,这反映了英语口语中对于简短发音的偏好。
然而,如果在正式或文档中使用deque,推荐使用全称 double-ended queue 或简称为 deque,以避免不必要的混淆。
综上所述,deque的读音主要取决于个人喜好和交流环境。
在不影响理解的情况下,可以采用简化的读音,如 迪Q 或 大可。
但在正式文档或需要精确表述的场合,建议使用全称 double-ended queue 或缩写 deque。