目前是这样写的,感觉比较繁琐。 int N =5; vector<string>a; a.reserve(N); for(int i = 0; i < N;i++) { a.push_back(""); }
目前是这样写的,感觉比较繁琐。 int N =5; vector<string>a; a.reserve(N); for(int i = 0; i < N;i++) { a.push_back(""); }
|
ligiggyJul 16, 2022
1
std::vector<std::string> a(5,"");
|
|
ligiggyJul 16, 2022
2
多逛逛这个网站,https://en.cppreference.com/w/
|
|
qaweqaJul 16, 2022
3
都知道用 reserve 了,不知道用 resize?
|
|
flmwswdJul 16, 2022
4
vector<string> vec(<your number>,<init val>).
|
|
5
@qaweqa 哈哈 主要是菜,resize 可以的。主要是没有绕过弯弯。再请教一下,vector<string>a; a.resize(N); 是不是意味着所有 N 元素都初始化为空串了?
|
|
kilasuelikaJul 16, 2022 via Android
6
@microxiaoxiao 是的,默认初始化。
|
|
nightwitchJul 17, 2022
7
resize 会调用默认构造函数
|