C++ STL vector 详解:基础用法、核心接口与实战算法
一、vector 容器简介
在学习 vector 之前,不妨回顾一下 string 类的实现。你会发现 vector 的接口比 string 少了很多。string 类诞生较早,STL 中很多容器都借鉴了它的特性,但 string 的部分接口在实际使用中显得比较鸡肋。
vector 本质上是一个动态顺序表,对应 C 语言初阶数据结构中的顺序表概念,只是用 C++ 封装得更优雅。

1. vector 的定义
vector 提供了多种构造函数来初始化对象:
| 构造函数声明 | 接口说明 |
|---|---|
vector() | 无参构造 |
vector(size_type n, const value_type& val) | 构造并初始化 n 个 val |
vector(const vector& x) | 拷贝构造 |
vector(InputIterator first, InputIterator last) | 使用迭代器范围初始化 |
二、vector 的使用实践
1. 输出与迭代器
vector 本身不支持直接通过 cin/cout 输出,我们需要封装一个打印函数。既可以用下标遍历,也可以用范围 for 循环。
void Print(const vector<int>& v) {
for (auto e : v) {
cout << e << " ";
}
cout << endl;
}
迭代器基础
迭代器是访问容器元素的指针抽象。常用接口如下:
| 接口 | 说明 |
|---|---|
begin() / end() | 获取首元素迭代器 / 尾后迭代器 |
rbegin() / rend() | 获取反向迭代器(从尾到头) |


