#include <iostream>
#include <vector>
int main()
{
static const unsigned TOTAL = 4;
std::vector<int> v[TOTAL];
v[2].push_back(37);
//std::cout << v.size(); error
std::cout << v[0].size();
std::cout << v[2].size();
return 0;
}
像上面的代码一样用括号将
std::vector
初始化是否有效?MSVS和ideone可以很好地进行编译,但是vector困惑了(请参见错误行)。
我知道我可以使用
resize
,但是这是怎么回事? 最佳答案
您正在创建一个TOTAL
大小的 vector 数组。
您需要的是
std::vector<int> v(TOTAL);
这将使用
TOTAL
零初始化ints
构造一个 vector 。然后,
std::cout << v.size() << std::endl; // prints 4
std::cout << v[0] << std::endl; // prints 0
等等。
关于c++ - 使用括号将std::vector创建为默认大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22039931/