用C++初始化parent数组和代价数组gCost
时间: 2024-09-06 22:04:24 浏览: 30
在C++中,初始化一个二维数组(如`parent[]`和`gCost[]`)通常会涉及到动态内存分配,因为你需要根据实际的情况(比如矩阵的大小)来创建数组。这里假设我们有一个确定的行数`rows`和列数`cols`,并且`parent`用于记录从源点到各个节点的路径,`gCost`表示从源点到每个节点的最短距离。
首先,你需要包含头文件`<cstdlib>`(用于`malloc()`和`calloc()`),然后使用`std::vector`或`new`来动态创建数组。这里是一个例子:
```cpp
#include <cstdlib>
#include <vector>
int rows = 10; // 指定行数
int cols = 10; // 指定列数
// 使用std::vector初始化gCost数组
std::vector<std::vector<int>> gCost(rows, std::vector<int>(cols, INT_MAX)); // 初始化所有元素为最大整数
for (int i = 0; i < rows; ++i) {
gCost[i][0] = 0; // 第0列通常代表源点,其成本设为0
}
// 使用一维数组初始化parent数组
int* parent = new int[rows * cols]; // 动态分配内存
parent[0] = -1; // 源点的parent标记为-1(表示无前驱)
```
在这个例子中,`INT_MAX`是`#define`的一个宏,通常代表数值的最大值,用于设置初始状态的高成本。
阅读全文