我做了2个课,其中一个是“单元”,另一个是“计算”。
cells是2d向量,数据类型为“ Cells”类 我想将“单元格”的对象-单元格的内容-放在二维矢量“单元格”中
稍后,我将计算matrixPotential和deltaMatrixPotential。
但我什至不能将对象放入2D向量中。
Cells::Cells(double matrixPotential,
double deltaMatrixPotential)
{
this->matrixPotential = matrixPotential;
this->deltaMatrixPotential = deltaMatrixPotential;
}
Calculation::Calculation()
{
std::vector<std::vector<Cells> > cells;
for(unsigned long i = 0; i < size; i++){
for(unsigned long j = 0; j < size; j++){
Cells contentOftheCell(matrixPotential,
deltaMatrixPotential);
cells[i][j] = contentOftheCell;
}
}
}
我该如何实现? 我可以用普通向量来做,但是在二维向量中似乎是不可能的
答案 0 :(得分:1)
您需要分配给向量,而不仅仅是写它们,希望在那里有东西要写。
std::vector<std::vector<Cells> > cells;
cells.resize(size);
for(unsigned long i = 0; i < size; i++) {
cells[i].resize(size)
for(unsigned long j = 0; j < size; j++) {
Cells contentOftheCell(matrixPotential,
deltaMatrixPotential);
cells[i][j] = contentOftheCell;
}
}
此示例通过调整大小分配内存,这比使用vector :: push_back随需添加空间效率更高。首先可以适当地构建向量,这会更好一些,但我将其留给读者练习。