Вставка в начало через итератор в C++
Итератор вставки бывает не только для конца.
Вставку в начало делает front_inserter из iterator: каждый
раз вставляет элемент в начало list. Для
vector такой прием неудобен: каждая
вставка в начало сдвигает весь массив.
Подключите list и algorithm. Запишем
список-источник, пустой список-приемник и
скопируем значения в начало:
std::list<int> src = {1, 2, 3};
std::list<int> dst;
std::copy(src.begin(), src.end(), std::front_inserter(dst));
std::cout << dst.front() << "\n";
На первом месте оказывается 3: элементы
лежат в обратном порядке относительно обхода
источника. Для очереди с частыми вставками
вперед список подходит лучше вектора.
Скопируйте два целых из маленького списка в пустой список так, чтобы при обходе сначала шло большее число. Выведите первый элемент приемника.