在C++中,vector
是标准模板库(STL)中的一个类模板,用于创建动态数组。以下是vector
的基本用法:
包含头文件
在使用vector
之前,需要包含相应的头文件:
#include <vector>
声明和初始化
vector
可以通过不同的方式进行声明和初始化:
- 声明一个空的
vector
:
std::vector<int> vec;
- 声明并初始化一个指定大小的
vector
,所有元素被初始化为指定值:
std::vector<int> vec(10, 0); // 初始化10个元素,每个元素值为0
- 使用一个已有的
vector
来初始化一个新的vector
:
std::vector<int> vec1(vec); // 复制vec1到vec2
- 使用迭代器范围构造
vector
:
std::vector<int> vec(std::begin(some_array), std::end(some_array));
访问元素
可以通过下标或迭代器访问vector
中的元素:
std::vector<int> vec = {1, 2, 3};
std::cout << vec << std::endl; // 输出1
添加和删除元素
- 使用
push_back
在vector
尾部添加元素:
vec.push_back(4);
- 使用
pop_back
删除vector
尾部的最后一个元素:
vec.pop_back();
- 使用
erase
删除vector
中指定位置的元素:
vec.erase(vec.begin() + 2); // 删除索引为2的元素
其他操作
-
size
:返回vector
中元素的数量。 -
capacity
:返回vector
当前分配的存储容量。 -
max_size
:返回vector
可以存储的最大元素数量。 -
resize
:改变vector
中元素的数量,如果新大小大于当前大小,则填充默认值。 -
reserve
:改变vector
的容量,不改变元素数量。
注意事项
-
使用
at
方法访问元素时,如果索引超出范围,会抛出std::out_of_range
异常。 -
vector
是同步的,即线程安全的,但这也意味着它的性能可能不如非同步的容器。
以上是vector
的基本用法,根据具体需求,还可以使用vector
提供的其他成员函数进行操作。需要注意的是,随着时间的推移,C++标准库可能会更新,因此推荐的实践是查阅最新的C++标准文档或参考教材以获得最准确的信息