Я столкнулся с проблемой при работе с Eigen в C ++.Eigen не поддерживает n-мерные матрицы (кроме неподдерживаемого класса Tensor, который на самом деле не является опцией).Что мне нужно, так это динамически распределенный тензор 4 ранга.Теперь у меня есть два варианта:
Использование std::vector<std::vector<Eigen::MatrixXd>>>
, что кажется плохой идеей, потому что каждый вектор будет выделять свою память (где-то) и, следовательно, он не будет действительно эффективным,
- Использование динамически размещаемого 2d-массива внутри
std::unique_ptr
, потому что я не хочу вручную освобождать указатель.Недостатком этого является то, что в настоящее время обычно не следует использовать массивы, заключенные в std:unique_ptr
, потому что для динамически размещаемых массивов у нас есть std::vector
.
Может кто-тодать мне подсказку в правильном направлении или предложить другой подход?