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

Метод insert

Метод insert класса list вставляет один или несколько элементов в список перед позицией, на которую указывает итератор. Первым параметром метод принимает итератор позиции, перед которой нужно вставить элемент, а вторым - значение, количество или диапазон вставляемых элементов. Метод возвращает итератор, указывающий на первый из вставленных элементов.

Синтаксис

iterator insert(iterator pos, const T& value); iterator insert(iterator pos, T&& value); iterator insert(iterator pos, size_type count, const T& value); template <class InputIt> iterator insert(iterator pos, InputIt first, InputIt last); iterator insert(iterator pos, initializer_list<T> ilist);

Первый параметр pos - итератор, перед которым выполняется вставка. Второй параметр зависит от перегрузки: это может быть значение, количество элементов, диапазон или список инициализации.

Пример

Давайте вставим один элемент в список перед вторым элементом:

#include <iostream> #include <list> using namespace std; int main() { list<int> lst = {1, 2, 3, 4, 5}; auto it = lst.begin(); ++it; lst.insert(it, 10); for (int elem : lst) { cout << elem << " "; } return 0; }

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

1 10 2 3 4 5

Пример

Давайте вставим 3 одинаковых элемента перед первым элементом списка:

#include <iostream> #include <list> using namespace std; int main() { list<int> lst = {1, 2, 3, 4, 5}; lst.insert(lst.begin(), 3, 0); for (int elem : lst) { cout << elem << " "; } return 0; }

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

0 0 0 1 2 3 4 5

Пример

Давайте вставим диапазон элементов из одного списка в другой перед последним элементом:

#include <iostream> #include <list> using namespace std; int main() { list<int> lst = {1, 2, 3, 4, 5}; list<int> other = {10, 20, 30}; auto it = lst.end(); --it; lst.insert(it, other.begin(), other.end()); for (int elem : lst) { cout << elem << " "; } return 0; }

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

1 2 3 4 10 20 30 5

Пример

Давайте вставим элементы из списка инициализации в начало списка:

#include <iostream> #include <list> using namespace std; int main() { list<int> lst = {1, 2, 3, 4, 5}; lst.insert(lst.begin(), {7, 8, 9}); for (int elem : lst) { cout << elem << " "; } return 0; }

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

7 8 9 1 2 3 4 5

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

  • класс list,
    который представляет двусвязный список
  • метод push_back,
    который добавляет элемент в конец списка
  • метод push_front,
    который добавляет элемент в начало списка
  • метод erase,
    который удаляет элементы из списка
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить