list :: emplace_front () и list :: emplace_back () в C ++ STL
Списки - это контейнеры, используемые в C ++ для хранения данных в несмежном виде. Обычно массивы и векторы являются смежными по своей природе, поэтому операции вставки и удаления являются более дорогостоящими по сравнению с опциями вставки и удаления в списках.
Эта функция используется для вставки нового элемента в контейнер списка, новый элемент добавляется в начало списка.
Синтаксис:
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)
Эта функция используется для вставки нового элемента в контейнер списка, новый элемент добавляется в конец списка.
Синтаксис:
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)