РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
319 of 815 menu

Функция inserter

Функция inserter создает специальный итератор вставки для контейнера. Этот итератор позволяет алгоритмам STL, таким как copy или transform, добавлять элементы в контейнер, а не перезаписывать существующие. В первый параметр мы передаем контейнер, в который будут вставляться элементы, а во второй - итератор, указывающий позицию, с которой начнется вставка. Функция возвращает объект insert_iterator, который при присваивании значения вставляет элемент в указанную позицию и сдвигает итератор вперед.

Синтаксис

std::inserter(container, iter)

Пример

Давайте скопируем элементы из одного вектора в другой, используя inserter для вставки в начало:

#include <iostream> #include <vector> #include <iterator> #include <algorithm> using namespace std; int main() { vector<int> src = {1, 2, 3}; vector<int> dest = {4, 5}; copy(src.begin(), src.end(), inserter(dest, dest.begin())); for (int n : dest) { cout << n << " "; } cout << endl; return 0; }

Результат выполнения кода:

1 2 3 4 5

Пример

Давайте вставим элементы в середину вектора, используя inserter с итератором, указывающим на третий элемент:

#include <iostream> #include <vector> #include <iterator> #include <algorithm> using namespace std; int main() { vector<int> src = {1, 2, 3}; vector<int> dest = {4, 5, 6, 7}; copy(src.begin(), src.end(), inserter(dest, dest.begin() + 2)); for (int n : dest) { cout << n << " "; } cout << endl; return 0; }

Результат выполнения кода:

4 5 1 2 3 6 7

Пример

Давайте используем inserter для добавления строк в конец вектора строк:

#include <iostream> #include <vector> #include <string> #include <iterator> #include <algorithm> using namespace std; int main() { vector<string> src = {"a", "b", "c"}; vector<string> dest = {"d", "e"}; copy(src.begin(), src.end(), inserter(dest, dest.end())); for (const string& s : dest) { cout << s << " "; } cout << endl; return 0; }

Результат выполнения кода:

"d e a b c"

Смотрите также

  • функция back_inserter,
    которая вставляет элементы в конец контейнера
  • функция front_inserter,
    которая вставляет элементы в начало контейнера
  • функция begin,
    которая возвращает итератор на начало контейнера
  • функция end,
    которая возвращает итератор на конец контейнера
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить