Le strutture di C ++ STL per tenere gli oggetti in un ordine specifico sono chiamate set. Un set deve avere componenti unici. Ogni elemento in un set può essere identificato dal suo valore individualmente, quindi servono come chiavi. In C ++, possiamo aggiungere ed eliminare gli elementi da un set; Tuttavia, non possiamo modificare i valori dei componenti perché sono statici dopo essere stati inseriti nel set."
Definizione set in c++
Come è già affermato, i set sono proprio il tipo di contenitori di libreria di modelli standard utilizzati in C ++ per archiviare gli articoli in modo accurato. I set possono essere sottoposti solo ai metodi di inserimento e cancellazione. In un oggetto set tipo, gli elementi vengono organizzati automaticamente in un ordine specificato. Non siamo in grado di modificare o aggiornare i valori dei componenti già esistenti in un set perché gli elementi nei contenitori sono immutabili. Definendolo con precisione, un elemento in un set funge da chiave per se stesso. I set sono abilitati solo per contenere un valore specifico.
Quando utilizzare i set?
Nella programmazione competitiva, i set sono ampiamente impiegati come contenitori. Quando è necessario archiviare gli articoli in modo classificato, potremmo prendere in considerazione l'utilizzo di set, ma tenere presente che le serie non consentono la memoria di valori ripetuti. Una volta immesso, il valore non può essere modificato.
Implementazione dei set
Per interagire con i set, i 2 file di intestazione principale dovrebbero essere integrati. I set sono accessibili utilizzando iteratori. Integra #include e #include nel tuo codice. Abbiamo la scelta di utilizzare solo questo file di intestazione anziché questi due. La biblioteca funge da sostituto dei file di intestazione sopra menzionati. Possiamo utilizzare questo solo file di intestazione perché incorpora tutti i file di intestazione. Gli alberi di ricerca binari vengono utilizzati per definire i set a livello interno.
Imposta le caratteristiche in C++
Di seguito sono riportati alcuni degli attributi set comuni in C ++:
Sintassi di set
Di seguito è riportato la dichiarazione STD :: SET dalla libreria "SET":
Parametri
Un contenitore set può contenere componenti unici. Questo potrebbe essere un oggetto funzione o un puntatore di funzione. Meno è il valore predefinito e fornisce gli stessi risultati dell'uso dell'espressione inferiore a Funzioni su set In C ++, i set potrebbero essere sottoposti a un'ampia varietà di operazioni. Valutiamo alcune delle principali tecniche di set. Esempio n. 1 In questo caso, un set verrà inizializzato. In C ++, specifichiamo i diversi tipi di elementi che verranno posizionati in un set quando viene creata. I punti dati di un set sono in genere archiviati in ordine crescente. La funzione maggiore potrebbe essere utilizzata per mantenere i dati in ordine decrescente. Set vuoto Queste sono numerose tecniche per dichiarare un set. I file di intestazione e sarebbero integrati per primi. Dopo questo, lo spazio dei nomi standard verrà utilizzato. La funzione principale () verrà chiamata. Il primo set verrà inizializzato e sarà un set vuoto in quanto non contiene alcun elemento. Il secondo set verrà dichiarato come un set vuoto in ordine decrescente. Il nuovo set verrà inizializzato aggiungendo diversi numeri interi. Questo set contiene quattro elementi. Inoltre, inizializzamo un nuovo set chiamato "S4" mediante un altro set, "S3". Abbiamo fornito i valori di S3 come parametri di S4. Ora il set sarà dichiarato da un array. Specifichiamo i valori nell'array e quindi salviamo quei valori in una variabile "A". Il quinto set contiene i 4 valori dell'array. Successivamente, definiremo l'iteratore per questi set richiesti. Acquiseremmo i valori di tutti gli insiemi mediante l'uso del loop "per". Esempio n. 2 Questa illustrazione dimostra come funzionano i metodi di inserimento e eliminazione del set. Le biblioteche richieste saranno incluse all'inizio del programma. Lo spazio dei nomi standard verrà aggiunto come "std". Ora il metodo principale () verrà invocato. Dichiariamo set diversi. Chiamiamo il metodo insert () per aggiungere i valori nel set. Verranno creati e chiamati diversi suggerimenti "P_1", "P_2" e "P_3". L'iteratore sarà dichiarato come questi puntatori. L'istruzione "Cout" verrà utilizzata per rappresentare la linea "I valori del set sono". Ora il ciclo "per" verrà utilizzato per mostrare tutti i valori inseriti del set. L'inizio () verrebbe chiamato per avviare i valori del set da stampare e i metodi end () verrebbero applicati per terminare i valori del set. Questi metodi saranno invocati all'interno del ciclo "per". Il costruttore del primo puntatore sarà definito all'interno dell'istruzione "cout". Ora faremo un altro set organizzando i valori in ordine decrescente. Gli elementi del primo e del secondo set richiesti sono gli stessi. La funzione find () verrebbe chiamata sugli elementi del primo set definito. Questa funzione ottiene i valori definiti dal set. Ora applichiamo il metodo Cancella () per eliminare i valori dal primo set. I valori che verranno eliminati sono da 22 a 88. L'istruzione "Cout" verrà utilizzata per mostrare il testo "i valori dell'insieme dopo l'uso della funzione ERASE ()". Per mostrare i valori, verrà utilizzato il loop "per". Quindi il costruttore del primo puntatore verrà dichiarato. Ora utilizziamo il ciclo "per" per stampare gli elementi del secondo set richiesto. L'istruzione "Cout" stampa la riga "I valori del secondo set sono". Prima di aggiungere il comando "return 0", verrà creato il costruttore della variabile iteratore. Esempio n. 3 In questo esempio, verranno utilizzate due funzioni, trova () e cancella,. Se l'articolo viene identificato, il metodo Find () produce un iteratore che lo fa riferimento; Altrimenti, fornisce un iteratore che si riferisce all'estremità del set. Gli elementi nel set rimuoveranno con l'aiuto della funzione Cancella (). Il programma includerà le biblioteche pertinenti all'inizio chiamate . Verrà introdotto lo spazio dei nomi standard come "std". Verrà ora fatto un riferimento alla funzione principale (). Specifica prima il set. Per includere i valori nel set, useremmo la funzione insert (). L'iteratore sarà identificato come "io"; I valori del set appropriato verranno visualizzati utilizzando il comando "cout". Il ciclo "per" verrà ora utilizzato per visualizzare tutti i valori inseriti del set. La funzione Begin () verrebbe utilizzata per iniziare a stampare i valori del set e il metodo end () verrebbe utilizzato per terminare la stampa dei valori del set. Questi metodi definiti sarebbero impiegati all'interno del ciclo "per". La dichiarazione "Cout" dichiarerà il costruttore dell'iteratore. Il testo "set aggiornato" verrà visualizzato utilizzando l'istruzione Cout. I componenti del primo set verrebbero determinati utilizzando la funzione find (). I valori definiti sono ottenuti da questa funzione dal set. Per rimuovere i valori dal primo set, ora utilizzeremo il metodo cancella (). Verranno eliminati fino a 25 valori. Usando un ciclo "per", verranno presentati i numeri interi rimanenti. La dichiarazione "Cout" fornirà una dichiarazione del costruttore dell'iteratore. Verranno eseguite le operazioni limite e superiori inferiori sui valori del set. I valori 45 e 17 del set verrebbero forniti alla funzione di limite inferiore (), che userebbe quindi il comando "cout" per stampare il risultato. Questi valori simili nel set verranno trattati con un metodo limite superiore (). Il valore del risultato verrà stampato dal comando "cout". Il comando "return 0" verrà aggiunto alla fine. Conclusione Abbiamo discusso delle funzioni di set C ++ in questa guida. Simile ad altri pacchetti di libreria standard, il set C ++ è cruciale. Rende più facile per gli sviluppatori estrarre e manipolare i valori. Abbiamo implementato tre programmi. L'inizializzazione dei set viene gestita nel primo esempio. Il secondo visualizza le aggiunte e le rimozioni di valori dall'insieme. Nell'istanza finale, scegliamo alcuni valori dal set e quindi rimuoviamoli.
#includere
Utilizzo dello spazio dei nomi std;
int main ()
set1;
impostato
impostato
impostato
int ar [] = 15, 24, 75, 51;
Imposta S5 (AR, AR+4);
SET :: iteratore I;
per (auto i = s5.inizio(); io!= S5.end (); i ++)
cout<
Ritorno 1;
Utilizzo dello spazio dei nomi std;
int main ()
Imposta S1;
S1.inserire (22);
S1.inserire (33);
S1.inserire (56);
S1.inserire (9);
S1.inserire (67);
S1.inserire (47);
S1.inserire (88);
Set :: iterator P_1, P_2, P_3;
cout<< " The values of the set are: \n" ;
per (p_1 = s1.inizio() ; P_1 != S1.FINE() ; p_1 ++)
cout<< *p_1 << " " ;
cout<
impostato
P_2 = S1.Trova (22);
p_3 = s1.Trova (88);
S1.cancella (p_2, p_3);
cout<< " The values of the set after using erase() function: \n " ;
per (p_1 = s1.inizio() ; P_1 != S1.FINE() ; p_1 ++)
cout<< *p_1 << " ";
cout<
per (i = s2.inizio() ; io != S2.FINE() ; I ++)
cout<< *i<< " ";
restituzione 0;
Utilizzo dello spazio dei nomi std;
int main ()
sets_1;
S_1.inserire (45);
S_1.inserire (12);
S_1.inserire (17);
S_1.inserire (89);
S_1.inserire (25);
S_1.inserire (14);
S_1.inserire (78);
S_1.inserire (34);
SET :: iteratore I;
cout<<"Values of required set: \n";
per (i = s_1.inizio() ; io != S_1.FINE() ; I ++)
cout<<*i<< " ";
cout<
S_1.cancella (S_1.inizio (), s_1.trova (25));
per (i = s_1.inizio() ; io!= S_1.FINE() ; I ++)
cout<< *i<< " " ;
cout<
cout<< *s_1.lower_bound( 45 )<
cout<< *s_1.lower_bound( 17 ) <
cout<< *s_1.upper_bound( 45 ) <
cout<< *s_1.upper_bound( 17 ) <