Sobes.tech
Junior — Senior
56

Поведение сохранённого итератора после изменения контейнера

Условие задачи

Исследовать, как ведёт себя итератор, полученный до модификации контейнера, при последующем использовании с разными STL‑контейнерами (например, std::list и std::vector).


template<typename C>
void process(C& container) {
    container.push_back(0);
    auto it = container.begin();
    for (size_t i = 1u; i < 1000u; ++i) {
        container.push_back(i);
    }
    std::cout << "First: " << *it << std::endl;
}

int main(int argc, char** argv) {
    std::list<int> lst;
    process(lst);
    std::vector<int> vec;
    process(vec);

    return EXIT_SUCCESS;
}