c++ - Получить вектор-столбец матрицы с++


1

Пусть есть матрица

vector< vector<int> > a = {
    {1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 42}
};

Я могу легко получить вектор-строку этой матрицы, например a[1] вернет вектор, который содержит {5, 6, 7, 8}.

Есть ли способ получить так же просто вектор-столбец матрицы? То есть, например, по индексу 2 получить вектор, который содержит {3, 7, 11}.

Источник
  •  535
  •  1
  • 17 янв 2019 2019-01-17 09:32:07
@int3 А как это можно сделать копированием? — 17 янв 20192019-01-17 09:14:00.000000
Без копирования или введения новых абстракций - нет — 17 янв 20192019-01-17 09:11:01.000000

1 ответ

4
vector<vector<int>> a = {
    {1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 42}
};

vector<int> b;

for(const auto& e: a) b.push_back(e[2]);
  • 17 янв 2019 2019-01-17 09:31:02