初始化二维 std::vector 可能是一项繁琐的任务。一种常见的方法是手动创建行并将其附加到向量,如提供的代码所示。但是,此方法效率低下且容易出错。
另一种解决方案是利用 std::vector::vector(count, value) 构造函数。此构造函数接受两个参数:所需的行数和每行元素的默认值。通过为这些参数指定适当的值,我们可以在单个语句中初始化向量:
std::vector<std::vector<int>> fog(ROW_COUNT, std::vector<int>(COLUMN_COUNT)); // Defaults to zero initial value
如果需要非零的默认值,则可以将其指定为构造函数的第二个参数:
std::vector<std::vector<int>> fog(ROW_COUNT, std::vector<int>(COLUMN_COUNT, 4));
统一初始化
C 11 引入了统一初始化,提供了另一种简洁的方式初始化 2D 向量的语法:
std::vector<std::vector<int>> fog { { 1, 1, 1 }, { 2, 2, 2 } };
此方法利用花括号来初始化向量内的行。每个内部大括号括起来的列表代表一行,每个元素都初始化为指定值。
通过使用这些技术,我们可以高效、优雅地初始化 2D std::vector,避免手动初始化的复杂性.
以上是如何在 C 中有效地初始化 2D std::vector ?的详细内容。更多信息请关注PHP中文网其他相关文章!