vector是C++中常用动态数组,支持自动内存管理与随机访问。其初始化方式包括:默认初始化创建空容器;指定大小初始化所有元素为默认值;指定大小和初始值;使用初始化列表赋值;通过迭代器从数组或其他vector构造。添加元素主要用push_back在末尾插入已构造对象,emplace_back直接在容器内构造对象以提升效率,insert可在指定位置插入单个或多个元素。实用技巧包括:使用reserve预先分配空间以减少重分配开销;区分size(当前元素数)与capacity(最大容量);clear清空元素但不释放内存,可用swap技巧释放;访问元素时at提供边界检查更安全。熟练掌握这些方法可显著提升代码性能与安全性。

在C++中,vector 是最常用的标准库容器之一,它是一个动态数组,能自动管理内存,支持随机访问,并且可以方便地添加和删除元素。掌握 vector 的初始化方式和元素添加技巧,对日常编程非常重要。
vector的常见初始化方式
根据使用场景,vector 提供了多种初始化方法:
默认初始化:创建一个空 vector,后续可动态添加元素。
std::vector vec;
指定大小初始化:创建固定大小的 vector,所有元素初始化为默认值(如 int 为 0)。
std::vector vec(5); // 包含5个0
立即学习“C++免费学习笔记(深入)”;
指定大小和初始值:所有元素设为指定值。
std::vector vec(5, 10); // 5个元素,每个都是10
用初始化列表赋值(C++11起):直接传入一组值。
std::vector vec = {1, 2, 3, 4, 5};
从数组或另一个 vector 构造:使用迭代器范围。
int arr[] = {10, 20, 30};
std::vector vec(arr, arr + 3);
std::vector vec2(vec); // 复制构造
向vector添加元素的方法
vector 提供了几个常用函数来动态添加元素,最核心的是 push_back 和 emplace_back。
push_back():在末尾插入一个已构造的对象。
vec.push_back(6); // 添加整数6
emplace_back():直接在末尾构造对象,避免临时对象的生成,效率更高,尤其适用于复杂对象(如类类型)。
vec.emplace_back(7); // 等价于 push_back(7),但更高效
insert():在指定位置插入元素或一段元素。
vec.insert(vec.begin(), 0); // 在开头插入0
vec.insert(vec.end(), {8, 9}); // 在末尾插入多个值
实用技巧与注意事项
预先分配空间提升性能:如果知道大概元素数量,使用 reserve() 避免频繁内存重分配。
vec.reserve(100); // 预留100个元素的空间
size() 与 capacity():size 返回当前元素个数,capacity 返回已分配的容量,不重新分配的前提下最多能存多少。clear() 清空但不释放内存:若想真正释放内存,可使用 swap 技巧:
std::vector().swap(vec); // 清空并释放内存
访问元素建议使用 at() 或 []:[] 不检查边界,at() 会抛出异常,调试时更安全。基本上就这些。熟练使用 vector 的初始化和添加方式,结合 reserve、emplace_back 等技巧,能让代码更简洁高效。
以上就是c++++ vector如何初始化和添加元素_c++ vector使用技巧的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1478453.html
微信扫一扫
支付宝扫一扫