Diferencia entre std::set y std::list

Set : Set es un tipo de contenedor asociativo que almacena elementos de manera ordenada. Todos los elementos de un conjunto son únicos y no se pueden modificar, pero se pueden eliminar o insertar. Es una plantilla de Standard Template Library o STL en C++ .

Sintaxis:

set <data_type> s

A continuación se muestra el programa para ilustrar lo mismo:

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:\n";
  
    // Print the element stored in set
    for (auto it : s)
        cout << it << " ";
  
    return 0;
}
Producción:

Elements in set:
1 5 10 15

Lista : la lista es un tipo de contenedor de secuencias en el que los elementos se almacenan en una asignación de memoria no contigua . Se implementa como una lista doblemente enlazada, por lo que proporciona iteración en ambas direcciones.

Sintaxis:

list <data_type> l;

A continuación se muestra el programa para ilustrar lo mismo:
 

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:\n";
  
    // Print the elements of list
    for (auto it : l)
        cout << it << " ";
  
    return 0;
}
Producción:

Elements in list:
10 15 5 1 1 10

A continuación se muestra la diferencia tabular entre el conjunto y la lista :

Como se ve en los códigos anteriores, después de insertar los valores {10, 5, 15, 1, 1} en el conjunto, los elementos se ordenan y los duplicados no se almacenan en el conjunto. Por lo tanto, está desordenado. Pero en el caso de la lista, los elementos se almacenan exactamente en el orden en que se insertaron y también se almacenan duplicados. Por lo tanto, se ordena.

S. No.

Establecer

Lista

1 El conjunto está ordenado y desordenado. La lista está desordenada y ordenada.
2 La inserción no se puede hacer en la posición deseada La inserción se puede hacer en cualquier posición usando la función insert()
3 Toma tiempo logarítmico para buscar un elemento. Toma un tiempo lineal para buscar un elemento.
4 Los elementos son únicos. Puede contener elementos duplicados.
5 Solo puede contener un valor nulo. Puede contener más de un valor nulo.
6 La inserción y la eliminación toman un tiempo logarítmico. La inserción y la eliminación toman un tiempo constante.
7 Implementado en HashSet, LinkedHashSet y TreeSet. Implementado en ArrayList y LinkedList .

Publicación traducida automáticamente

Artículo escrito por aktmishra143 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *