vector中resize与reserve的区别
resize()
resize() 函数的作用是改变 vector 元素个数。
resize(n,m) 第二个参数可以省略,n 代表改变元素个数为 n ,m 代表初始化为 m 。
- resize() 可以改变有效空间的大小。
- 如果 n 比 vector 的 size 小,结果是 size 减小到 n ,然后删除 n 之后的数据。
示例:
void test1() {
vector<int> v;
v.reserve(20);
v.resize(10);
cout << "vector.size() = " << v.size() << endl;
cout << "vector.capacity() = " << v.capacity() << endl;
for (int i = 0; i < v.size(); i++) {
cout << v[i] << " ";
}
cout << endl;
v.resize(5);
cout << "vector.size() = " << v.size() << endl;
cout << "vector.capacity() = " << v.capacity() << endl;
for (int i = 0; i < v.size(); i++) {
cout << v[i] << " ";
}
cout << endl;
}
输出:
vector.size() = 10
vector.capa