logo

Elenco nella libreria di modelli standard C++ (STL)

Gli elenchi sono in sequenza contenitori che consentono l'allocazione di memoria non contigua. Rispetto al vettore la lista ha un attraversamento lento, ma una volta trovata la posizione l'inserimento e la cancellazione sono rapidi (tempo costante). Normalmente, quando diciamo Lista, parliamo di a elenco doppiamente concatenato . Per implementare un elenco collegato singolarmente, utilizziamo a forward_list .

std::lista è la classe del contenitore List. Fa parte della libreria di modelli standard C++ (STL) ed è definita al suo interno file di intestazione.

Sintassi:



std::list name_of_list;>

Esempio:

cos'è il desktop ini

C++




programmi di esempio Java

// C++ program to demonstrate the use of list containers> #include> #include> using> namespace> std;> int> main()> {> >// defining list> >list<>int>>gqlist{12,45,8,6};> >for> (>auto> i : gqlist) {> >cout << i <<>' '>;> >}> >return> 0;> }>

>

>

Produzione

12 45 8 6>

Nell'esempio precedente, abbiamo creato un oggetto std::list denominato gqlist e lo ho inizializzato utilizzando un inizializzatore_list. Possiamo inizializzare gli oggetti std::list utilizzando molti modi diversi menzionati Qui.

conversione da stringa a int in Java

Alcune operazioni di base su std::list

  • davanti() Restituisce il valore del primo elemento della lista.
  • Indietro() Restituisce il valore dell'ultimo elemento della lista.
  • push_front() Aggiunge un nuovo elemento 'g' all'inizio dell'elenco.
  • respingere() Aggiunge un nuovo elemento 'g' alla fine dell'elenco.
  • pop_front() Rimuove il primo elemento dell'elenco e riduce la dimensione dell'elenco di 1.
  • pop_back() Rimuove l'ultimo elemento dell'elenco e riduce la dimensione dell'elenco di 1.
  • inserire() Inserisce nuovi elementi nell'elenco prima dell'elemento in una posizione specificata.
  • misurare() Restituisce il numero di elementi nell'elenco.
  • inizio() La funzione Begin() restituisce un iteratore che punta al primo elemento della lista.
  • FINE() La funzione end() restituisce un iteratore che punta all'ultimo elemento teorico che segue l'ultimo elemento.

L'esempio seguente dimostra l'uso generale dei contenitori di elenchi e le loro funzioni di base in C++.

Esempio:

C++


comando make di Linux



// C++ program to demonstrate the implementation of List> #include> #include> #include> using> namespace> std;> // function for printing the elements in a list> void> showlist(list<>int>>g)> {> >list<>int>>::iteratore it;> >for> (it = g.begin(); it != g.end(); ++it)> >cout <<>' '> << *it;> >cout <<>' '>;> }> // Driver Code> int> main()> {> >list<>int>>gqlist1, gqlist2;> >for> (>int> i = 0; i <10; ++i) {> >gqlist1.push_back(i * 2);> >gqlist2.push_front(i * 3);> >}> >cout <<>' List 1 (gqlist1) is : '>;> >showlist(gqlist1);> >cout <<>' List 2 (gqlist2) is : '>;> >showlist(gqlist2);> >cout <<>' gqlist1.front() : '> << gqlist1.front();> >cout <<>' gqlist1.back() : '> << gqlist1.back();> >cout <<>' gqlist1.pop_front() : '>;> >gqlist1.pop_front();> >showlist(gqlist1);> >cout <<>' gqlist2.pop_back() : '>;> >gqlist2.pop_back();> >showlist(gqlist2);> >cout <<>' gqlist1.reverse() : '>;> >gqlist1.reverse();> >showlist(gqlist1);> >cout <<>' gqlist2.sort(): '>;> >gqlist2.sort();> >showlist(gqlist2);> >return> 0;> }>

>

>

Produzione

anno in trimestri
List 1 (gqlist1) is : 0 2 4 6 8 10 12 14 16 18 List 2 (gqlist2) is : 27 24 21 18 15 12 9 6 3 0 gqlist1.front() : 0 gqlist1.back() : 18 gqlist1.pop_front() : 2 4 6 8 10 12 14 16 18 gqlist2.pop_back() : 27 24 21 18 15 12 9 6 3 gqlist1.reverse() : 18 16 14 12 10 8 6 4 2 gqlist2.sort(): 3 6 9 12 15 18 21 24 27>

L'esempio precedente dimostra solo l'utilizzo generale di std::list e delle sue funzioni membro. La tabella seguente fornisce tutte le funzioni membro della classe std::list e i collegamenti alla loro spiegazione dettagliata.

std::list Funzioni membro

Funzioni

Definizione

davanti() Restituisce il valore del primo elemento della lista.
Indietro() Restituisce il valore dell'ultimo elemento della lista.
spingere_front(g) Aggiunge un nuovo elemento 'g' all'inizio dell'elenco.
respingere(g) Aggiunge un nuovo elemento 'g' alla fine dell'elenco.
pop_front() Rimuove il primo elemento dell'elenco e riduce la dimensione dell'elenco di 1.
pop_back() Rimuove l'ultimo elemento dell'elenco e riduce la dimensione dell'elenco di 1.
lista::inizio() La funzione Begin() restituisce un iteratore che punta al primo elemento della lista.
lista::fine() La funzione end() restituisce un iteratore che punta all'ultimo elemento teorico che segue l'ultimo elemento.
elenca rbegin() e rend() rbegin() restituisce un iteratore inverso che punta all'ultimo elemento della lista. rend() restituisce un iteratore inverso che punta alla posizione prima dell'inizio dell'elenco.
elenca cbegin() e cend() cbegin() restituisce un iteratore ad accesso casuale costante che punta all'inizio dell'elenco. cend() restituisce un iteratore ad accesso casuale costante che punta alla fine dell'elenco.
elenca crbegin() e crend() crbegin() restituisce un iteratore inverso costante che punta all'ultimo elemento dell'elenco, ovvero l'inizio invertito del contenitore. crend() restituisce un iteratore inverso costante che punta all'elemento teorico che precede il primo elemento nell'elenco, ovvero l'estremità inversa dell'elenco.
vuoto() Restituisce se l'elenco è vuoto(1) o meno(0).
inserire() Inserisce nuovi elementi nell'elenco prima dell'elemento in una posizione specificata.
cancellare() Rimuove un singolo elemento o un intervallo di elementi dall'elenco.
assegnare() Assegna nuovi elementi all'elenco sostituendo gli elementi correnti e ridimensionando l'elenco.
rimuovere() Rimuove dall'elenco tutti gli elementi uguali a un determinato elemento.
lista::rimuovi_if() Utilizzato per rimuovere dall'elenco tutti i valori che corrispondono al predicato o alla condizione fornita come parametro alla funzione.
inversione() Inverte l'elenco.
misurare() Restituisce il numero di elementi nell'elenco.
ridimensionamento elenco() Utilizzato per ridimensionare un contenitore di elenchi.
ordinare() Ordina l'elenco in ordine crescente.
elenca dimensione_massima() Restituisce il numero massimo di elementi che un contenitore di elenco può contenere.
elenco unico() Rimuove tutti gli elementi consecutivi duplicati dall'elenco.
list::emplace_front() e list::emplace_back() La funzione .emplace_front() viene utilizzata per inserire un nuovo elemento nel contenitore dell'elenco e costruisce l'oggetto sul posto all'inizio dell'elenco.
. La funzione emplace_back() viene utilizzata per inserire un nuovo elemento nel contenitore dell'elenco e costruisce l'oggetto sul posto alla fine dell'elenco.
lista::cancella() La funzione clear() viene utilizzata per rimuovere tutti gli elementi del contenitore dell'elenco, rendendolo così di dimensione 0.
lista::operatore= Questo operatore viene utilizzato per assegnare nuovi contenuti al contenitore sostituendo il contenuto esistente.
lista::scambia() Questa funzione viene utilizzata per scambiare il contenuto di un elenco con un altro elenco.
elenco giunzione() Utilizzato per trasferire elementi da una lista all'altra.
elenco unisci() Unisce due elenchi ordinati in uno solo.
elenco posto() Estende l'elenco inserendo un nuovo elemento in una determinata posizione e costruisce l'oggetto sul posto all'inizio dell'elenco, migliorando potenzialmente le prestazioni evitando un'operazione di copia

Punti da ricordare sul contenitore elenco

  • Viene generalmente implementato utilizzando una lista dinamica doppiamente collegata con attraversamento in entrambe le direzioni.
  • Operazioni di inserimento ed eliminazione più veloci rispetto ad array e vettori.
  • Fornisce solo l'accesso sequenziale. L'accesso casuale a qualsiasi elemento centrale non è possibile
  • È definito come modello, quindi è in grado di contenere qualsiasi tipo di dati.
  • Funziona come un elenco non ordinato, il che implica che, per impostazione predefinita, l'ordine dell'elenco non viene preservato. Tuttavia, esistono tecniche per l'ordinamento.