像这样初始化 2D vector 可以吗(这里 5x4 2D vectro 中的所有值都初始化为 3)?
std::vector<std::vector<int> > foo(5, std::vector<int>(4, 3));
这似乎没有问题,但我在网上看到的每个地方似乎都建议使用 for 循环和 push_back() 来初始化这样一个 vector 。我最初担心这里的所有行都会指向同一个 vector ,但事实并非如此。我错过了什么吗?
最佳答案
这是完全有效的 - 您将获得一个二维 vector ([5, 4] 个元素),每个元素都初始化为 3。
对于大多数其他情况(例如,您想要在不同的元素中使用不同的值),您不能使用任何单行代码 - 因此需要循环。
关于c++ - 在 C++ 中可以使用构造函数将 2D Vector 初始化为单行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5277213/