Разница между std :: set и std :: list
Набор : Набор - это тип ассоциативного контейнера, в котором элементы хранятся в отсортированном виде. Все элементы набора уникальны и не могут быть изменены, но могут быть удалены или вставлены. Это шаблон стандартной библиотеки шаблонов или STL на C ++.
Синтаксис:
установить <data_type> s
Ниже приведена программа, иллюстрирующая то же самое:
C ++
// C++ program to demonstrate the // working of set in c++ #include <bits/stdc++.h> using namespace std; // Driver code int main() { // Declaring a set set< int > s; // Inserting elements // into the set s.insert(10); s.insert(5); s.insert(15); s.insert(1); // Insert the duplicate elements s.insert(1); cout << "Elements in set:
" ; // Print the element stored in set for ( auto it : s) cout << it << " " ; return 0; } |
Элементы в наборе: 1 5 10 15
Список : список - это тип контейнера последовательности, в котором элементы хранятся в несмежном распределении памяти. Он реализован как двусвязный список, поэтому он обеспечивает итерацию в обоих направлениях.
Синтаксис:
list <data_type> l;
Ниже приведена программа, иллюстрирующая то же самое:
C ++
// C++ program to demonstrate the // working of list in cpp #include <bits/stdc++.h> using namespace std; // Driver code int main() { // Declaring a list list< int > l; // Inserting elements // in the list l.push_back(10); l.push_back(15); l.push_back(5); l.push_back(1); l.push_back(1); l.push_back(10); cout << "Elements in list:
" ; // Print the elements of list for ( auto it : l) cout << it << " " ; return 0; } |
Элементы в списке: 10 15 5 1 1 10
Ниже представлена табличная разница между набором и списком :
Как видно из приведенных выше кодов, после вставки значений {10, 5, 15, 1, 1} в набор элементы сортируются, и дубликаты не сохраняются в наборе. Следовательно, это неупорядочено. Но в случае списка элементы точно сохраняются в том порядке, в котором они были вставлены, и дубликаты также сохраняются. Значит, это заказано. Установленный Список S.No. 1 Набор отсортирован и неупорядочен Список несортированный и упорядоченный 2 Вставка не может быть произведена в желаемом положении Вставка может быть произведена в любую позицию с помощью функции insert () 3 Требует логарифмического времени для поиска элемента. Требует линейного времени для поиска элемента. 4 Элементы уникальны. Может содержать повторяющиеся элементы. 5 Может содержать только одно нулевое значение. Может содержать более одного значения NULL. 6 Вставка и удаление занимают логарифмическое время. Вставка и удаление занимают постоянное время. 7 Реализовано в HashSet, LinkedHashSet и TreeSet. Реализовано в ArrayList и LinkedList.