Функция front_inserter
Функция front_inserter создаёт специальный итератор вставки,
который при присваивании ему значения добавляет это значение
в начало контейнера. В параметр функции мы передаём сам контейнер,
в который будут вставляться элементы. Такой итератор удобно
использовать вместе с алгоритмами стандартной библиотеки,
например, с copy, для заполнения контейнера в обратном порядке.
Синтаксис
std::front_inserter(container)
Пример
Давайте скопируем элементы вектора {1, 2, 3, 4, 5}
в начало списка с помощью front_inserter:
#include <iostream>
#include <vector>
#include <list>
#include <iterator>
#include <algorithm>
using namespace std;
int main()
{
vector<int> src = {1, 2, 3, 4, 5};
list<int> dst;
copy(src.begin(), src.end(), front_inserter(dst));
for (int el : dst)
{
cout << el << ' ';
}
cout << endl;
return 0;
}
Результат выполнения кода:
5 4 3 2 1
Пример
Давайте вручную вставим несколько элементов в начало списка
через итератор, полученный от front_inserter:
#include <iostream>
#include <list>
#include <iterator>
using namespace std;
int main()
{
list<int> lst;
auto it = front_inserter(lst);
*it = 1;
*it = 2;
*it = 3;
for (int el : lst)
{
cout << el << ' ';
}
cout << endl;
return 0;
}
Результат выполнения кода:
3 2 1
Смотрите также
-
функция
back_inserter,
которая вставляет элементы в конец контейнера -
функция
inserter,
которая вставляет элементы в указанную позицию -
функция
begin,
которая возвращает итератор на начало контейнера -
функция
end,
которая возвращает итератор на конец контейнера