Разница между std :: set и std :: list

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

Набор : Набор - это тип ассоциативного контейнера, в котором элементы хранятся в отсортированном виде. Все элементы набора уникальны и не могут быть изменены, но могут быть удалены или вставлены. Это шаблон стандартной библиотеки шаблонов или 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.