// Borrar mientras se recorre, de la forma correcta: erase devuelve el siguiente.
#include <iostream>

#include "dlist.h"

int main() {
    DList<int> list;
    for (int i = 1; i <= 8; i++) {
        list.push_back(i);
    }

    auto it = list.begin();
    while (it != list.end()) {
        if (*it % 2 == 0) {
            it = list.erase(it);
        } else {
            ++it;
        }
    }

    for (int value : list) {
        std::cout << value << " ";
    }
    std::cout << "\n";
    list.check_invariants();
    return 0;
}
