在 C++ 中解释多维向量的语句时感到困惑
Getting Confused While Interpreting a Statement Of Multidimensional Vectors in c++
我是使用C++处理 2D 向量的新手,而且经常在我 在C++中使用 2D 矢量。我正在浏览某人的代码,在解释这行代码时感到困惑:
vector<vector<int>> dp(n, vector<int>(m));
这里,m和n是网格的行数和列数。
有人可以详细解释一下,这句话是什么意思吗?
这一行:
vector<vector<int>> dp(n, vector<int>(m));
正在调用std::vector
的构造函数。
对于dp
,第一个参数是元素的数量,第二个参数是要多次插入的值。
内部向量没有指定参数值,这将插入默认值(在int
的情况下0
(。
因此,在这种情况下,您正在创建一个包含n
行的向量,其中每行都有m
个元素,并且每个元素都是0
的。
http://www.cplusplus.com/reference/vector/vector/vector/
Vector 的一个构造函数将参数 1 作为元素的数量,将参数 2 作为这些元素的值。 在本例中,您将创建一个名为 dp...它将有 n 个元素... 并且这些元素中的每一个都将初始化为大小为 m 元素的新向量。
n 和 m 值实际上只与初始大小有关...Vector 将在添加新元素时自动调整自身大小,或者如果您预计会出现重大大小更改,则明确告诉它
如果有帮助,你可以分解它
vector<vector<int>> dp(n, vector<int>(m));
实际上与
vector<int> row(m);
vector<vector<int>> dp(n, row);
第一个版本所做的只是消除row
变量。
相关文章:
- 写入向量<向量<bool>>
- 函数向量_指针有不同的原型,我可以构建一个吗
- std::向量与传递值的动态数组
- 将值指定给向量(2D)的向量中的某个位置
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 如何使用向量的template_back函数
- 尝试通过多个向量访问变量时,向量下标超出范围
- 在 C++ 中解释多维向量的语句时感到困惑
- 我的 If Else 语句无法在向量 (C++) 中提供最大值
- 我不明白这个向量声明语句
- 如何在C++中使用 if 语句终止向量输入
- 仅在向量末尾打印新行 - "if"语句在"for"循环之外
- 如何编写涉及指针/向量的 if 语句
- 如何在向量中找到特定的字符串并在if语句中使用
- C++将向量传递给重载类——有些调用语句有效,有些则无效
- 如何使用选择语句检索 sqlite 并分配给向量然后分配给字符串
- C++ Sqlite 选择语句并存储为向量
- 在 switch 语句中使用向量时"Jump to case label"错误。
- 这两个向量语句之间的区别是什么
- 这个向量push_back语句是什么意思