Мне нужно заменить элемент в позиции (i, j), но это не сработает. Каков правильный способ замены объекта в двумерном std :: vector?Установить элемент в двух размерных std :: vector
Вот мой код:
//Call from main
Matrix *matrixA = new Matrix(5, 5);
matrixA->displayElements();
matrixA->setElement(2, 2, 40.0);
matrixA->displayElements();
//Matrix class
std::vector < std::vector <double>> container;
void Matrix::setElement(long atRow, long atColumn, double value)
{
for (int i=0; i < this->numberOfColumns; i++)
{
std::vector<double> row = this->container.at(i);
for (int j = 0; j<this->numberOfRows; j++)
{
if((j==atRow) && (i == atColumn))
{
//std::vector<double> column = this->container.at(i);
row.insert(row.begin()+j, value);
std::cout <<row.at(j);
//int i = 0;
}
}
}
}
'container [atRow] [atColumn] = value;' – juanchopanza
Хотя это не имеет прямого отношения к вопросу, вы должны рассмотреть возможность использования интеллектуального указателя ('std :: unique_ptr' или' std :: shared_ptr') для управления ' Матричный объект. – Alejandro
@AlejandroLucena Зачем использовать указатель? – juanchopanza