c++中的二维vector注意事项(object向c++转型系列教程3)

44 篇文章 0 订阅
44 篇文章 0 订阅

vector<T>是可以像coccos2d-x里面的CCMutableArray一样进行2维数组的操作的

比如要在vector<T>储存一个vector<string> ;

方法是一下

vector<vector<string> >


注意的是vector<string>后面要先有一个空格,才不会导致报错。


> >之间要有空格

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用枚举类型 `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` 来定义了枚举值的数量,这样就可以避免手动指定枚举值的值,使代码更加灵活和易于维护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值