【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 

分享标题:【Example】C++ STL 常用容器概述
标题链接:http://scyanting.com/article/dsoihce.html