Вставка в заданную позицию в C++
Когда новые значения должны появиться перед
конкретной позицией, берут inserter.
Итератор вставки из iterator помнит
контейнер и место: каждая запись через него
вызывает insert перед этой позицией.
Запишем вектор с одним элементом, укажем место перед концом и добавим два числа:
std::vector<int> v = {10};
auto pos = v.end();
auto ins = std::inserter(v, pos);
*ins = 20;
++ins;
*ins = 30;
std::cout << v[1] << "\n";
Средний элемент становится 20. Позиция
для inserter часто берется у end
или у найденного элемента, если копируют
фрагмент в середину.
В векторе из одного числа 100
добавьте перед концом два меньших
значения так, чтобы средний элемент
стал 50, и выведите его.