Нет действительно быстрого способа сделать это. Также, как было указано, я бы сказал, что это соглашение наоборот, то есть A[0]
на самом деле является первой строкой, а не первым столбцом. Однако даже пытается получить столбец не совсем тривиально, так как
{0, 1, 2, 3, 4}
{0}
{0, 1, 2}
очень возможно vector<vector<double>> A
, но нет реального столбца 1
, 2
, 3
или 4
. Если вы хотите применить поведение, подобное столбцам одинаковой длины, неплохо было бы создать класс Matrix
(или использовать библиотеку).
Вы можете написать функцию, которая будет возвращать vector<double>
, перебирая строки и сохраняя соответствующее значение столбца. Но вы должны быть осторожны с тем, хотите ли вы скопировать или указать значения матрицы (vector<double>
/ vector<double *>
). Это не очень быстро, так как значения не находятся рядом друг с другом в памяти.