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