
目前是这样写的,感觉比较繁琐。 nt 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 resze 会调用默认构造函数 |