std::vector<std::vector<int>> dp(m + 1, std::vector<int>(n + 1, 0));
时间: 2025-06-26 19:08:56 浏览: 19
### C++ 中二维 `vector` 的初始化
在 C++ 中,可以利用 STL 提供的 `std::vector` 来实现动态规划所需的二维数组。以下是关于如何初始化一个用于动态规划的二维 `vector` 的详细说明。
#### 使用默认构造函数创建二维向量
可以通过指定外部和内部向量的大小以及初始值来完成二维 `vector` 的初始化。例如:
```cpp
#include <iostream>
#include <vector>
int main() {
// 创建一个 3 行 4 列的二维 vector,默认值为 0
std::vector<std::vector<int>> dp(3, std::vector<int>(4, 0));
// 输出验证
for (const auto& row : dp) {
for (const auto& elem : row) {
std::cout << elem << " ";
}
std::cout << "\n";
}
return 0;
}
```
上述代码片段展示了如何通过传递两个参数给外层 `vector` 构造函数的方式初始化二维 `vector`[^1]。第一个参数定义了外层数组的大小(即行数),第二个参数是一个已经初始化好的内层 `vector` 实例,其大小由该实例决定,并且所有元素都被设置成相同的初始值。
#### 动态调整大小并赋初值
如果需要更复杂或者非零的初始状态,则可以在构建时直接提供这些信息:
```cpp
// 创建一个 m 行 n 列的二维 vector 并填充特定数值 k
size_t m = 5, n = 6, k = -1;
std::vector<std::vector<int>> matrix(m, std::vector<int>(n, k));
```
这里我们设定了矩阵维度分别为 `m=5`, `n=6` 和初始值 `-1`. 这种形式允许开发者更加自由地控制容器的内容及其布局[^2].
#### 获取行列数目
一旦建立了这样的结构体之后,就可以很容易地访问它的尺寸属性以便进一步操作它们的数据成员。比如要得到当前对象有多少条记录(也就是多少行)可以用 `.size()` 方法;而对于每一项子集来说也是同样的逻辑适用——调用各自的 `.size()` 函数即可得知对应列的数量[^3]:
```cpp
int rowCount = matrix.size();
if(rowCount > 0){
int colCount = matrix[0].size();
} else{
int colCount = 0;
}
```
以上就是有关于怎样去建立适合做动态规划用途下的多维存储空间的一些基本概念和技术要点总结。
阅读全文
相关推荐

















