list :: emplace_front () и list :: emplace_back () в C ++ STL

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

Списки - это контейнеры, используемые в C ++ для хранения данных в несмежном виде. Обычно массивы и векторы являются смежными по своей природе, поэтому операции вставки и удаления являются более дорогостоящими по сравнению с опциями вставки и удаления в списках.

list :: emplace_front ()

Эта функция используется для вставки нового элемента в контейнер списка, новый элемент добавляется в начало списка.
Синтаксис:

listname .emplace_front ( значение )
Параметры:
Элемент, который нужно вставить в список
передается как параметр.
Результат :
Параметр добавлен в
список в начале.

Примеры:

Ввод: mylist {1, 2, 3, 4, 5};
         mylist.emplace_front (6);
Вывод: mylist = 6, 1, 2, 3, 4, 5

Ввод: mylist {};
         mylist.emplace_front (4);
Вывод: mylist = 4

Ошибки и исключения
1. Он имеет строгую гарантию исключения, поэтому при возникновении исключения никаких изменений не производится.
2. Параметр должен быть того же типа, что и у контейнера, иначе будет выдана ошибка.

// CPP program to illustrate
// Implementation of emplace_front() function
#include <iostream>
#include <list>
using namespace std;
int main()
{
list< int > mylist;
mylist.emplace_front(1);
mylist.emplace_front(2);
mylist.emplace_front(3);
mylist.emplace_front(4);
mylist.emplace_front(5);
mylist.emplace_front(6);
// list becomes 6, 5, 4, 3, 2, 1
// printing the list
for ( auto it = mylist.begin(); it != mylist.end(); ++it)
cout << ' ' << *it;
return 0;
}

Выход:

6 5 4 3 2 1

Сложность времени: O (1)

list :: emplace_back ()

Эта функция используется для вставки нового элемента в контейнер списка, новый элемент добавляется в конец списка.
Синтаксис:

listname .emplace_back ( значение )
Параметры:
Элемент, который нужно вставить в список
передается как параметр.
Результат :
Параметр добавлен в
список в конце.

Примеры:

Ввод: mylist {1, 2, 3, 4, 5};
         mylist.emplace_back (6);
Вывод: mylist = 1, 2, 3, 4, 5, 6

Ввод: mylist {};
         mylist.emplace_back (4);
Вывод: mylist = 4

Ошибки и исключения
1. Он имеет строгую гарантию исключения, поэтому при возникновении исключения никаких изменений не производится.
2. Параметр должен быть того же типа, что и у контейнера, иначе будет выдана ошибка.

// CPP program to illustrate
// Implementation of emplace_back() function
#include <iostream>
#include <list>
using namespace std;
int main()
{
list< int > mylist;
mylist.emplace_back(1);
mylist.emplace_back(2);
mylist.emplace_back(3);
mylist.emplace_back(4);
mylist.emplace_back(5);
mylist.emplace_back(6);
// list becomes 1, 2, 3, 4, 5, 6
// printing the list
for ( auto it = mylist.begin(); it != mylist.end(); ++it)
cout << ' ' << *it;
return 0;
}

Выход:

1 2 3 4 5 6

Сложность времени: O (1)

Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .
C++