Функция deque insert () в C ++ STL

Опубликовано: 30 Декабря, 2021

Функция deque :: insert () - это встроенная функция в C ++, которая используется для вставки элементов в двухстороннюю очередь.
Функцию insert () можно использовать тремя способами:

  • Расширяет deque, вставляя новый элемент val в позицию .
  • Расширяет двухстороннюю очередь, вставляя в двухстороннюю очередь n новых элементов со значением val .
  • Расширяет двухстороннюю очередь, вставляя новый элемент в диапазон [первый, последний) .

Синтаксис:

deque_name.insert (позиция итератора, const value_type и val)
                или
deque_name.insert (позиция итератора, size_type n, const value_type & val)
                или
deque_name.insert (позиция итератора, InputIterator сначала, InputIterator последний)

Параметры: функция принимает четыре параметра, которые указаны ниже:

  • position - определяет позицию, в которую элемент / элементы должны быть вставлены.

  • val - указывает значение, которое будет присвоено вновь вставленному элементу.
  • n - указывает количество вставляемых элементов. Каждый элемент инициализируется копией val.
  • first, last - задает итераторы, определяющие диапазон вставляемых элементов. Диапазон включает все элементы между первым и последним, включая элемент, на который указывает первый, но не тот, на который указывает последний.

Возвращаемое значение: функция возвращает итератор, указывающий на первый из вновь вставленных элементов.

Нижеприведенные программы иллюстрируют вышеуказанную функцию:
Программа 1:

// CPP program to illustrate the
// deque::insert() function
// insert elements by iterator
#include <bits/stdc++.h>
using namespace std;
int main()
{
deque< int > dq = { 1, 2, 3, 4, 5 };
deque< int >::iterator it = dq.begin();
++it;
it = dq.insert(it, 10); // 1 10 2 3 4 5
std::cout << "Deque contains:" ;
for (it = dq.begin(); it != dq.end(); ++it)
cout << ' ' << *it;
cout << ' ' ;
return 0;
}
Выход:
В колоде: 1 10 2 3 4 5

Программа 2:

// CPP program to illustrate the
// deque::insert() function
// program for second syntax
#include <bits/stdc++.h>
using namespace std;
int main()
{
deque< int > dq = { 1, 2, 3, 4, 5 };
deque< int >::iterator it = dq.begin();
// 0 0 1 2 3 4 5
dq.insert(it, 2, 0);
std::cout << "Deque contains:" ;
for (it = dq.begin(); it != dq.end(); ++it)
cout << ' ' << *it;
cout << ' ' ;
return 0;
}
Выход:
В колоде: 0 0 1 2 3 4 5

Программа 3:

// CPP program to illustrate the
// deque::insert() function
// program for third syntax
#include <bits/stdc++.h>
using namespace std;
int main()
{
deque< int > dq = { 1, 2, 3, 4, 5 };
deque< int >::iterator it = dq.begin();
++it;
vector< int > v(2, 10);
// 1 10 10 2 3 4 5
dq.insert(it, v.begin(), v.end());
std::cout << "Deque contains:" ;
for (it = dq.begin(); it != dq.end(); ++it)
cout << ' ' << *it;
cout << ' ' ;
return 0;
}
Выход:
В колоде: 1 10 10 2 3 4 5
Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .
C++