c++ - 在 C++ 中可以使用构造函数将 2D Vector 初始化为单行吗?

标签 c++ stl vector constructor 2d

像这样初始化 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/

相关文章:

c++ - c++中 vector 容器的大小和调整大小函数

c++ - C++ 类构造函数语法的解释?

c++ - vector 字符串 push_back 在 C++ 中不起作用

c++ - 一维世界中到极点的平均距离

c++ - 为什么我们需要使用 std::vector::pointer 来访问元素?

STL - 为什么pop_heap的复杂度是O(2 * log(N))?

c++ - 如何访问嵌套的 STL 元素?

c++ - 如何在 C++ 中静态转换 2D vector size() (size_t 到 int)?

c++ - 是否必须在 C 和 C++ 中转义制表符?

C++包含和重新定义类错误