C++中 vector 容器详解

C++ 中的 vector 容器详解

在 C++ 中,vector是一个非常强大且常用的容器。它就像是一个可以动态调整大小的数组,为我们在编程中处理数据集合提供了极大的便利。

一、什么是 vector 容器

vector是 C++ 标准模板库(STL)中的一部分,被定义在 头文件中。它可以存储任意类型的元素,并且能够根据需要自动调整其大小。这意味着我们不需要像使用普通数组那样担心数组大小的限制。

二、vector 的基本用法

定义和初始化
可以像这样定义一个存储整数的空 vector:std::vector<int> vec;
也可以使用初始化列表进行初始化:std::vector<int> vec = {1, 2, 3, 4, 5};
添加元素
使用 push_back()函数在末尾添加元素:

std::vector<int> vec;
vec.push_back(10);
vec.push_back(20);

还可以使用 emplace_back(),它可以直接在容器尾部构造一个元素,避免不必要的拷贝和移动操作:

vec.emplace_back(30);

访问元素
通过下标访问元素,就像普通数组一样,但要注意下标越界问题:

int firstElement = vec[0];
int secondElement = vec.at(1); // at 函数会进行边界检查,越界时会抛出异常

可以使用迭代器遍历 vector:

for (auto it = vec.begin(); it!= vec.end(); ++it) {
    std::cout << *it << " ";
}

获取大小和容量
size()函数返回 vector 中当前的元素个数:int size = vec.size();
capacity()函数返回 vector 当前的容量:int capacity = vec.capacity();
判断是否为空
使用 empty()函数判断 vector 是否为空:bool isEmpty = vec.empty();
删除元素
使用 pop_back()函数删除末尾元素:vec.pop_back();
可以使用 erase()函数删除指定位置的元素:

auto it = vec.begin() + 2;
vec.erase(it);

三、vector 的优点

动态大小:可以根据需要自动增长或收缩,无需手动管理内存。
随机访问:支持高效的随机访问,通过下标或迭代器可以快速访问任意元素。
丰富的操作函数:提供了许多方便的函数,如添加、删除、遍历等操作,使编程更加简洁高效。

四、注意事项

在使用迭代器时,要注意容器的修改可能会使迭代器失效。例如,在遍历过程中添加或删除元素可能会导致迭代器指向错误的位置。
当 vector 进行动态扩容时,可能会导致性能开销。如果能预先估计容器的大小,可以使用 reserve()函数提前分配足够的空间,避免频繁的扩容操作。
总之,C++ 中的 vector容器是一个非常实用的工具,掌握它的使用方法可以让我们在编程中更加高效地处理数据集合。无论是存储简单的数据类型还是复杂的对象,vector都能发挥出巨大的作用。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值