Получить указатель на первый элемент нужного столбца желаемого среза. Затем передайте этот указатель одному из расширенных конструкторов класса ve c . Пример:
cube C(6, 5, 4, fill::randu); // cube with 4 slices
vec v1 = C.slice(2).col(3); // normal way of extracting a vector
vec v2( &C(0,3,2), C.n_rows, false, false); // alternative way
Обратите внимание, что хотя это работает, это небезопасно. Если C
изменяется или удаляется, v2
будет использовать нераспределенную память или память другого объекта. В первом случае это может привести к segfault. Во втором случае это утечка информации.
Если C
- это const cube
, используйте const_cast , чтобы убрать const
из полученного указателя. Опять же, это не безопасно.