在C++ STL中,vector 是最常用的一种序列式容器,它封装了动态数组,能够自动管理内存,支持快速随机访问,并且可以在尾部高效地插入和删除元素。本文将详细介绍 vector 的基本使用方法、常用函数以及其背后的扩容机制。
要使用 vector,需要包含头文件
常见初始化方式包括:
std::vector vec;
std::vector vec(5); (创建5个默认值为0的int)std::vector vec(5, 10); (5个10)std::vector vec2(vec1);
std::vector vec = {1, 2, 3, 4};
vector 提供了丰富的接口来操作数据,以下是开发中最常使用的函数:
1. 元素访问vec[i]:直接访问第 i 个元素,不检查越界vec.at(i):访问第 i 个元素,会做越界检查,越界抛出 std::out_of_range
vec.front():返回第一个元素vec.back():返回最后一个元素vec.data():返回指向内部数组首元素的指针,可用于 C 风格接口vec.size():当前元素个数vec.empty():判断是否为空,比 size() == 0 更推荐vec.capacity():当前分配的存储空间能容纳多少元素vec.resize(n):调整大小,若 n > size 则补默认值;n
vec.reserve(n):预分配至少 n 个元素的空间,避免频繁扩容vec.shrink_to_fit():请求释放未使用的内存(C++11)vec.push_back(x):尾部插入一个元素vec.pop_back():删除最后一个元素vec.insert(it, x):在迭代器 it 指向位置前插入元素 xvec.erase(it):删除 it 指向的元素,或删除区间 [first, last)vec.clear():清空所有元素vec.swap(another_vec):与另一个 vector 交换内容,常数时间vector 的底层是一段连续的内存空间。当插入元素导致当前容量不足时,会触发扩容机制。
扩容过程如下:
原有元素逐个拷贝或移动到新空间不同编译器策略略有差异:
扩容是昂贵的操作,应尽量避免频繁发生。建议:
reserve()
例如:
std::vector这样可确保只分配一次内存,效率更高。
由于扩容会改变内存地址,所有指向 vector 的迭代器、指针、引用在扩容后都会失效。
编程时需注意避免使用已失效的迭代器,否则行为未定义。
vector 的优势:
不适合的场景:
对于这类需求,可考虑 list 或 deque。
基本上就这些。掌握 vector 的使用和原理,是 C++ 开发的基础能力。
# c++
# for
# 封装
# 成员函数
# include
# int
# 循环
# 指针
# 接口
# 迭代
# 更大
# 第一个
# 而不
# 这类
# 更高
# 详细介绍
# 或删除
# 较低
# 不适合
相关文章:
网站制作说明怎么写,简述网页设计的流程并说明原因?
如何零基础在云服务器搭建WordPress站点?
如何自定义建站之星模板颜色并下载新样式?
制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?
北京网站制作的公司有哪些,北京白云观官方网站?
Android滚轮选择时间控件使用详解
建站之星安装路径如何正确选择及配置?
建站之星如何实现PC+手机+微信网站五合一建站?
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
如何解决ASP生成WAP建站中文乱码问题?
建站之星Pro快速搭建教程:模板选择与功能配置指南
建站之星安装失败:服务器环境不兼容?
建站VPS选购需注意哪些关键参数?
如何快速搭建二级域名独立网站?
建站之星安装需要哪些步骤及注意事项?
如何在建站之星网店版论坛获取技术支持?
建站之星与建站宝盒如何选择最佳方案?
如何撰写建站申请书?关键要点有哪些?
如何在景安服务器上快速搭建个人网站?
网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?
宁波自助建站系统如何快速打造专业企业网站?
青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?
如何高效生成建站之星成品网站源码?
javascript中对象的定义、使用以及对象和原型链操作小结
建站之星伪静态规则如何正确配置?
TestNG的testng.xml配置文件怎么写
如何快速辨别茅台真假?关键步骤解析
如何选择CMS系统实现快速建站与SEO优化?
怀化网站制作公司,怀化新生儿上户网上办理流程?
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
长沙做网站要多少钱,长沙国安网络怎么样?
小型网站建站如何选择虚拟主机?
网站制作需要会哪些技术,建立一个网站要花费多少?
高防服务器租用指南:配置选择与快速部署攻略
专业网站建设制作报价,网页设计制作要考什么证?
如何通过VPS建站实现广告与增值服务盈利?
香港服务器租用费用高吗?如何避免常见误区?
网站制作报价单模板图片,小松挖机官方网站报价?
重庆市网站制作公司,重庆招聘网站哪个好?
如何零成本快速生成个人自助网站?
济南专业网站制作公司,济南信息工程学校怎么样?
,巨量百应是干嘛的?
如何快速搭建虚拟主机网站?新手必看指南
定制建站流程步骤详解:一站式方案设计与开发指南
专业公司网站制作公司,用什么语言做企业网站比较好?
如何用腾讯建站主机快速创建免费网站?
红河网站制作公司,红河事业单位身份证如何上传?
如何在西部数码注册域名并快速搭建网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。