使用c++判断类型并定义UNKNOWN = 0, UNKNOWN_MOVABLE = 1, UNKNOWN_UNMOVABLE = 2, PEDESTRIAN = 3, BICYCLE = 4, VEHICLE = 5, MAX_OBJECT_TYPE = 6,五种类型利用二维表的关联距离计算
时间: 2023-08-27 22:04:02 浏览: 80
可以使用枚举类型 `ObjectType` 来定义这些物体类型,然后利用二维数组来存储这些类型之间的关联距离,具体代码如下:
```c++
#include <iostream>
#include <vector>
enum ObjectType {
UNKNOWN = 0,
UNKNOWN_MOVABLE,
UNKNOWN_UNMOVABLE,
PEDESTRIAN,
BICYCLE,
VEHICLE,
MAX_OBJECT_TYPE
};
void printMatrix(const std::vector<std::vector<double>>& matrix) {
for (int i = 0; i < MAX_OBJECT_TYPE; i++) {
for (int j = 0; j < MAX_OBJECT_TYPE; j++) {
std::cout << matrix[i][j] << " ";
}
std::cout << std::endl;
}
}
int main() {
// 构建关联距离矩阵
std::vector<std::vector<double>> distances(MAX_OBJECT_TYPE, std::vector<double>(MAX_OBJECT_TYPE, 0.0));
distances[UNKNOWN][UNKNOWN_MOVABLE] = 0.3;
distances[UNKNOWN][UNKNOWN_UNMOVABLE] = 0.4;
distances[UNKNOWN][PEDESTRIAN] = 0.5;
distances[UNKNOWN][BICYCLE] = 0.6;
distances[UNKNOWN][VEHICLE] = 0.7;
distances[UNKNOWN_MOVABLE][UNKNOWN_UNMOVABLE] = 0.1;
distances[UNKNOWN_MOVABLE][PEDESTRIAN] = 0.2;
distances[UNKNOWN_MOVABLE][BICYCLE] = 0.3;
distances[UNKNOWN_MOVABLE][VEHICLE] = 0.4;
distances[UNKNOWN_UNMOVABLE][PEDESTRIAN] = 0.2;
distances[UNKNOWN_UNMOVABLE][BICYCLE] = 0.3;
distances[UNKNOWN_UNMOVABLE][VEHICLE] = 0.4;
distances[PEDESTRIAN][BICYCLE] = 0.1;
distances[PEDESTRIAN][VEHICLE] = 0.2;
distances[BICYCLE][VEHICLE] = 0.3;
// 输出关联距离矩阵
printMatrix(distances);
return 0;
}
```
在这个示例中,我们定义了一个 `printMatrix` 函数,用于输出二维数组。在 `main` 函数中,我们先用 `std::vector` 定义了一个大小为 `MAX_OBJECT_TYPE` * `MAX_OBJECT_TYPE` 的二维数组 `distances`,并将其初始化为 0。然后,我们通过给 `distances` 数组中的元素赋值来设置不同类型之间的关联距离。最后,我们调用 `printMatrix` 函数输出了这个关联距离矩阵。
注意,这里我们使用了 `MAX_OBJECT_TYPE` 来定义了枚举值的数量,这样就可以避免手动指定枚举值的值,使代码更加灵活和易于维护。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![xlsx](https://img-home.csdnimg.cn/images/20210720083732.png)
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)