vector 的resize与reserve

时间:2022-01-26 04:57:31

最近遇到一个坑,简单说来是resize与reserve的功能混淆了。

如下:

如果调用resize的化,编译会出错,如果给Text提供默认构造函数,则可以编译通过,最终输出的结果为10.

如果调用reserve,无编译错误,输出为0。

#include <iostream>
using namespace std;
const int max_size = ;
struct Text {
Text(const int size): m_size(size){
};
int m_size;
};
int main() {
vector<Text> array;
// array.resize(max_size);
array.reserve(max_size);
cout<< array.size()<< endl;
return ;
}