#c
Вопрос:
У меня есть этот 2d массив:
vector<vector<int>> arr = {{1, 1},
{1, 3, 2},
{1, 6, 11, 6}};
Я хочу добавить последние элементы каждой строки (1 2 6), а затем второй-длится (1 3 11), и так далее ((1 6), (1)). Как я могу это сделать?
Кстати, извините за мой английский (не носитель языка).
Комментарии:
1. Это не похоже на матрицу, независимо от того, как вы ее интерпретируете.
Ответ №1:
Вы можете сделать это, например, с помощью,
- Рассчитайте максимальное количество элементов из элементов
arr
. - Повторите от
0
максимального числа до минус единицы. - Извлеките элемент
i
th, отсчитанный от последнего элемента, проверив, содержит ли элементi
элемент или более. - Добавьте элементы.
#include <iostream>
#include <vector>
using std::vector;
int main(void) {
vector<vector<int>> arr = {{1, 1},
{1, 3, 2},
{1, 6, 11, 6}};
size_t max_num = 0;
for (size_t i = 0; i < arr.size(); i ) {
if (max_num < arr[i].size()) max_num = arr[i].size();
}
for (size_t i = 0; i < max_num; i ) {
int sum = 0;
for (size_t j = 0; j < arr.size(); j ) {
if (i < arr[j].size()) sum = arr[j][arr[j].size() - 1 - i];
}
std::cout << sum << 'n';
}
return 0;
}