Crea un set STD in C ++

Crea un set STD in C ++
Un set in C ++ è molto simile a un set in matematica. Quello che segue è un insieme di numeri interi:
-5, 6, 9, 8, -2

Quello che segue è un insieme di personaggi:

'B', 'm', 'a', 'c', 't', 'o', 'q'

Di seguito è riportato una serie di stringhe (elementi su una tabella di lettura):

"Lettura lampada", "computer", "penna", "matita", "libri di esercizi", "libri di testo"

In C ++, ogni valore in ciascuno dei set sopra, è chiamato chiave.

In C ++, un set non consente valori duplicati. Tuttavia, ancora in C ++, un multiset consente valori duplicati. Questo articolo si rivolge al set e non si rivolge al multiset.

STD significa standard. Questo articolo è su come creare un set standard in C++. È anche menzionato l'aggiunta di elementi (valori).

Biblioteca

C ++ ha una libreria principale, chiamata Biblioteca standard C ++. Questa biblioteca ha biblioteche secondarie che sono anche divise in ulteriori sottoblioteche che sono divise ulteriormente in più biblioteche. I sub-bibrandi inferiori possono essere visti come moduli. La sub-biblioteca di primo livello qui è chiamata Libreria dei contenitori. La libreria dei contenitori ha una sub-biblioteca, chiamata Libreria dei contenitori associativi. La libreria dei contenitori associativi ha un sub-biblioteca chiamato la libreria set. Questa libreria set può essere considerata come un modulo. Per codificare i set, deve essere incluso all'inizio del programma come segue:

#includere
#includere
Utilizzo dello spazio dei nomi std;

iostream dovrebbe essere sempre incluso se il terminale (console) deve essere utilizzato per l'uscita (e l'input). La seconda riga in questo segmento di codice include il modulo set. La terza riga è una dichiarazione che termina con un punto e virgola, insiste sull'uso dello spazio dei nomi standard.

Per compilare il programma, con il compilatore G ++ 20 per C ++ 20, utilizzare il seguente comando:

G ++ -Std = C ++ 2A Filine.CPP -O FileName

Esegui il programma con:

./nome del file

Supponendo che il file compilato sia nella directory utente (home).

Costruire un set

Costruire o creare un set è il problema principale di questo articolo. Ci sono molti costruttori per il set. Solo i più comunemente usati saranno spiegati qui.

Costruire un set vuoto

La seguente istruzione costruirà un set vuoto:

impostato St;

Inizia con il tipo di classe. Questo è seguito da parentesi angolari, che ha il tipo per gli elementi (valori). C'è uno spazio e quindi il nome del set (ST).

Inserimento di valori

Gli elementi possono essere inseriti con il metodo insert () della classe set, come segue:

impostato St;
st.inserire (-5); st.inserire (6); st.inserire (9);
st.inserire (8); st.inserire (-2);

Il set -5, 6, 9, 8, -2 è stato inserito.

Restituire un iteratore

La classe set non ha l'operatore delle staffe quadrate, come l'array. Quindi, per scansionare gli elementi del set, è necessario un iteratore. Se il nome del set è ST, la seguente istruzione restituirà un iteratore che indica il primo elemento del set:

impostato:: iterator iter = st.inizio();

Apprezzo la sintassi di questa affermazione.

Dimensione del set

La seguente dichiarazione restituisce la dimensione di un set:

int sz = st.misurare();

La variabile, SZ, contiene le dimensioni del set.

Valori di lettura del set

Il seguente programma utilizza l'iteratore per leggere tutti i valori nel set:

impostato St;
st.inserire (-5); st.inserire (6); st.inserire (9);
st.inserire (8); st.inserire (-2);
per (set:: iterator iter = st.inizio(); iter != st.FINE(); iter ++)
cout << *iter << ", ";
cout << endl;

L'output è:

-5, -2, 6, 8, 9,

Nota come sono stati utilizzati il ​​per anello e l'iteratore. “ST.end () ”restituisce l'iteratore finale che punti subito dopo l'ultimo elemento.

Con le stringhe come elementi, il modulo stringa deve essere incluso;

#includere

Considera il seguente codice con elementi stringa:

impostato St;
st.inserire ("lampada da lettura"); st.inserire ("computer"); st.inserire ("penna");
st.inserire ("matita"); st.inserire ("libri di esercizi"); st.inserire ("libri di testo");
per (set:: iterator iter = st.inizio(); iter != st.FINE(); iter ++)
cout << *iter << ", ";
cout << endl;

L'output è:

Computer, libri di esercizi, penna, matita, lampada di lettura, libri di testo,

Si noti che quando i valori vengono aggiunti con il comando insert (), il set viene ordinato internamente.

Si noti inoltre che, per usare le stringhe, è necessario includere la classe di stringhe; Altrimenti, sono i puntatori delle stringhe che verranno ordinate e non i letterali alfabetici di stringa stessi.

Set (const set & x)
Questo è un costruttore set, che richiederebbe l'identificatore di un altro set come argomento, per costruire un nuovo set. Il seguente codice illustra questo:

Imposta ST;
st.inserire (-5); st.inserire (6); st.inserire (9); st.inserire (8); st.inserire (-2);
impostato ST2 (ST);
per (set:: iterator iter = st2.inizio(); iter != ST2.FINE(); iter ++)
cout << *iter << ", ";
cout << endl;

L'output è:

-5, -2, 6, 8, 9,

set (inizializer_list, const confront & = confront (), const allocatore & = allocator ())

Questo è un costruttore, in cui il secondo e il terzo argomento sono opzionali. Quando non indicati, i valori predefiniti vengono scelti da C++. Il primo argomento è un Initializer_List (array letterale). Il seguente codice illustra l'uso del costruttore:

impostato st ('b', 'm', 'a', 'c', 't', 'o', 'q');
per (set:: iterator iter = st.inizio(); iter != st.FINE(); iter ++)
cout << *iter << ", ";
cout << endl;

L'output è:

A, B, C, M, O, Q, T,

Si noti che l'output è ordinato nonostante il fatto che l'input sia un inizialerizer_list non desiderato.

Nota: Con inizializer_list, le parentesi della chiamata del costruttore, possono essere omesse, come nel seguente codice:

impostato St 'B', 'M', 'A', 'C', 'T', 'O', 'Q';
per (set:: iterator iter = st.inizio(); iter != st.FINE(); iter ++)
cout << *iter << ", ";
cout << endl;

L'output è ancora:

A, B, C, M, O, Q, T,

Copia costruttori

Un set può essere creato assegnando l'identificatore di un altro set all'identificatore del nuovo set o assegnando il set letterale (array letterale) all'identificatore del nuovo set.

Set & Operator = (const set & x)
Questo assegna l'identificatore di un altro set all'identificatore di un nuovo set come mostrato, quindi:

impostato St;
st.inserire ('b'); st.inserire ('m'); st.inserire ('a'); st.inserire ('c');
st.inserire ('t'); st.inserire ('o'); st.inserire ('q');
impostato ST2 = ST;
per (set:: iterator iter = st2.inizio(); iter != ST2.FINE(); iter ++)
cout << *iter << ", ";
cout << endl;

L'output è:

A, B, C, M, O, Q, T,

Set & Operator = (inizializer_list)
Questo assegna il set letterale (array letterale) all'identificatore di un nuovo set come mostrato, quindi:

impostato st = 'b', 'm', 'a', 'c', 't', 'o', 'q';
per (set:: iterator iter = st.inizio(); iter != st.FINE(); iter ++)
cout << *iter << ", ";
cout << endl;

L'output è:

A, B, C, M, O, Q, T,

Conclusione

Il set letterale in C ++ è simile a quello della matematica. Un set, che non viene ordinato viene ordinato, ascendente, dopo la costruzione (creazione) con le impostazioni predefinite. STD significa standard. I modi comuni per creare un set sono stati illustrati sopra.