Другие языки программирования и технологии

Как удалить все чётные строки из двумерного массива С++

Сам массив я создал. А вот удалить чётные строки не получается
Подскажите как удалить или покажите похожий пример,
#include <ctime>
#include <cstdlib>
#include <iomanip>
#include <iostream>
using namespace std;
int main() {
    const int n = 7, m = 8;
    int **a = new int *[n];
    for (int r = 0; r < n; ++r) {
        a[r] = new int[m];
        for (int c = 0; c < m; ++c) cout << setw(3) << (a[r][c] = rand() % 100);
        cout << endl;
    }
    cout << endl;
    for (int r = 0; r < n; r += 2) delete[] a[r];
    for (int r = 0; r < n / 2; ++r) a[r] = a[r * 2 + 1];
    for (int r = 0; r < n / 2; ++r) {
        for (int c = 0; c < m; ++c) cout << setw(3) << a[r][c];
        cout << endl;
        delete[] a[r];
    }
    delete[] a;
}
Dimas {><}
Dimas {><}
87 758
Лучший ответ
ну, если ты создавал массив через указатели и оператор new[], то так:
создаешь новый массив, в него копируешь все нечетные строки, старый убиваешь.

если же ты использовал stl, то удаляй с помощью итераторов (хоть поэлементно)

ну, значит так: считаешь кол-во нечетных строк, создаешь новый массив соответствующей размерности, записываешь в него все нечетные строки, старый удаляешь (delete[] )
идешь по строкам и каждую вторую просто игноришь