我想知道我是否可以这样做:创建一个矩阵,只在调用函数时初始化它的大小:
#ifndef OCCUPANCY_GRID_H
#define OCCUPANCY_GRID_H
#include <math.h>
class OccupancyGrid{
public:
void update_cell_value(double x, double y, double status) {
matrix[x_origin+x][y_origin+y]=status;
}
void initialize_map(){
grid_size=100;
x_origin=grid_size/2;
y_origin=grid_size/2;
}
private:
int grid_size;
int x_origin;
int y_origin;
int const map[grid_size][grid_size] = {-1};
};
#endif
有没有更好的方法呢?
谢谢
答案 0 :(得分:0)
使用std::vector<std::vector<T>>
。理想情况下,您将在构造函数中初始化它,但如果您必须稍后初始化它,请在循环中执行此操作。例如:
class OccupancyGrid {
public:
void initialize_matrix(unsigned size){
matrix.resize(size);
for(auto& v : matrix)
v.resize(size);
}
private:
std::vector<std::vector<double>> matrix;
};