Добавление элементов 2d массива в C

#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:

Вы можете сделать это, например, с помощью,

  1. Рассчитайте максимальное количество элементов из элементов arr .
  2. Повторите от 0 максимального числа до минус единицы.
  3. Извлеките элемент i th, отсчитанный от последнего элемента, проверив, содержит ли элемент i элемент или более.
  4. Добавьте элементы.
 #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;
}