我有一个函数,它接受行数和列数,并使用对象“单元”的默认值初始化向量向量,并返回指向该向量的指针。
//Cell class
class cell{
public:
int cost, parent;
cell(int cost = 0, int parent = 0) : cost(cost), parent(parent){}
}
//The initialisation function
vector<vector<cell> >* init_table(int n_rows, int n_cols){
//Error line
vector<vector<cell> >* table = new vector<vector<cell>(n_cols)> (n_rows);
//Some(very few) special cells need a different value so I do that here
return table; //Return the pointer
}
似乎编译器解析 (n_cols)> (n_rows) 就像 > 操作,而不是创建单元对象的 n_cols 副本和向量对象的 n_rows 副本。如何在不手动循环并推送向量中的默认值单元格的情况下初始化向量?