Итак, я создаю класс, который представляет матрицу произвольного размера, и я хочу написать функцию, которая «экспортирует» внутренний вектор в двумерный массив.
Я нашел некоторый код , который, кажется, делает то, что я хочу.Вот как выглядит код в моем классе:
// Export matrix to array
double** Matrix::a_data() const
{
vector<double*> ptrs;
for (auto& vec : mat)
{
ptrs.push_back(vec.data());
}
return ptrs.data();
}
, где mat - это вектор >, используемый для хранения записей матрицы.
В сообщении говорилось, что vec должен быть автоматическим, а не автоматическим, потому что "очень важно не допустить, чтобы vec был временной копией."
Тем не менее, в Visual Studio я всегда получаю сообщение об ошибке "ни один экземпляр перегруженной функции push_back не соответствует списку аргументов ... типы аргументов (const double *)"
Итак, мой вопрос, как я могузаставить это работать без изменения авто и авто?Кроме того, как можно расширить это до 3 измерений?