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;
}