vector 是 C++ STL 中最常用的动态数组容器,属于"序列容器"。它能自动扩容,不用你操心数组大小——这是它碾压普通数组的地方。
核心机制:vector 在内存中是一段连续空间,支持按下标 O(1) 随机访问。当 push_back 超出当前容量(capacity)时,它会申请一块大约 2 倍的新空间,把旧元素搬过去,再释放旧空间。
size() 是元素个数,capacity() 是当前分配空间大小,二者不同!
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> v(n);
for(int i = 0; i < n; i++)
cin >> v[i]; // 读入 n 个数
// 输出偶数下标元素
for(int i = 0; i < v.size(); i += 2)
cout << v[i] << " "; // i 从0开始步长2
cout << endl;
// 删除所有值为0的元素
for(int i = 0; i < v.size(); ) {
if(v[i] == 0)
v.erase(v.begin() + i); // 删掉后 i 不动
else
i++; // 没删才自增
}
v.push_back(100); // 末尾加100
cout << v.size() << endl; // 输出大小
for(int i = 0; i < v.size(); i++)
cout << v[i] << " ";
cout << endl;
return 0;
}
vector<int> v;