C++ STL 常用容器概述

【Example】C++ STL 常用容器概述

前排提醒:

由于 Microsoft Docs 全是机翻。所以本文表格是我人脑补翻+审校。

如果有纰漏、模糊及时评论反馈。

 

 

序列式容器

序列容器是指在逻辑上以线性排列方式存储给定类型元素的容器。

这些容器和数组非常类似,都是在逻辑上连续的(但内存不一定是连续的),与数组不同的是,容器可以非常方便的动态管理,而不是固定元素大小。

 

std::vector

当你需要容器时,就找vector! 

— Bjarne Stroustrup

std::vector 差不多是C++当中最常用的容器,它是一个模版类。你可以将它视作传统数组的动态功能增强版本,因此它的泛用性非常高。

当你以局部变量形式创建并初始化 vector 时,对象本身是存储于栈内存当中,但是它所存储的元素却是在堆内存当中连续的一块空间,因此 std::vector 对于随机访问效率会非常高。

vector 的存储是自动管理的,按需扩张收缩。 vector 通常占用多于静态数组的空间,因为要分配更多内存以管理将来的增长。 vector 所用的方式不在每次插入元素时,而只在额外内存耗尽时重分配。分配的内存总量可用 capacity() 函数查询。额外内存可通过对 shrink_to_fit() 的调用返回给系统。 (C++11 起)

重分配通常是性能上有开销的操作。若元素数量已知,则 reserve() 函数可用于消除重分配。

— 《C++ Reference》

 

头文件:

#include <vector>
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » C++ STL 常用容器概述