Vettore C++ di coppie

Vettore C Di Coppie



In C++, un vettore è un contenitore versatile che può ridimensionarsi dinamicamente consentendo una manipolazione efficiente degli elementi. Mentre una coppia è un semplice contenitore che può contenere due oggetti eterogenei che fornisce un mezzo conveniente per associare e gestire i dati correlati. Quando queste coppie sono organizzate all'interno di un vettore, gli sviluppatori acquisiscono la capacità di creare raccolte dinamiche di coppie chiave-valore o qualsiasi altra combinazione di due elementi distinti.

Questa struttura dati è particolarmente utile negli scenari in cui gli elementi devono essere archiviati come coppie, ad esempio quando si ha a che fare con coppie chiave-valore o si rappresentano le relazioni tra entità. In questo articolo esploreremo il concetto di vettore di coppie C++ ed esploreremo i vari esempi per illustrarne le applicazioni pratiche.







Esempio 1: utilizzo di base: iterazione su un vettore di coppie

Consideriamo un esempio di base in cui creiamo un vettore di coppie che rappresentano i nomi degli studenti e le loro età corrispondenti. L'iterazione su un vettore di coppie è simile all'iterazione su un vettore normale. È possibile utilizzare gli iteratori o i cicli 'for' basati su intervalli per recuperare ciascuna coppia all'interno del vettore.



Questo esempio mostra la sintassi di un 'vettore di coppie' in un contesto significativo.



#include
#include
#include

int principale ( ) {

std::vettore < std::coppia < std::stringa, int >> studenteDati;

studentData.push_back ( std::make_pair ( 'Adamo' , venti ) ) ;
studentData.push_back ( std::make_pair ( 'Conto' , 22 ) ) ;
studentData.push_back ( std::make_pair ( 'Charlie' , ventuno ) ) ;

std::cout << 'Dati degli studenti: \N ' ;
per ( const automatico & studente: studentData ) {
std::cout << 'Nome: ' << studente.prima << ', Età: ' << studente.secondo << std::endl;
}

ritorno 0 ;
}


In questo frammento di codice C++, iniziamo includendo tre file di intestazione essenziali: ' ' per le operazioni di input e output, '' per utilizzare il contenitore del vettore e '' per accedere a 'std:: coppia'. Queste intestazioni ci consentono di utilizzare le funzionalità essenziali per il nostro programma.





Andando avanti, all'interno della funzione main(), dichiariamo un vettore denominato 'studentData' utilizzando il contenitore 'std::vettore'. Questo vettore è progettato per memorizzare le coppie in cui ciascuna coppia incapsula il nome di uno studente (rappresentato come 'std::string') e la sua età (un numero intero 'int'). Quindi popoliamo il vettore “studentData” con tre coppie. Utilizzando la funzione “push_back”, le coppie vengono aggiunte alla fine del vettore, regolandone dinamicamente le dimensioni. Un ciclo scorre quindi attraverso 'studentData', estraendo e stampando il nome e l'età di ogni studente. L'output visualizza 'Dati studente:' che enfatizza la rappresentazione strutturata. I nomi e le età degli studenti vengono stampati separatamente, presentando chiaramente i dati memorizzati.



Esempio 2: ordinamento di un vettore di coppie

Ordinare un vettore di coppie è un'operazione comune, soprattutto quando si ha a che fare con associazioni di valori-chiave. A questo scopo è possibile utilizzare la funzione “std::sort” dell'intestazione “ ”. Vediamo come ordinare un vettore di coppie in base al primo e al secondo elemento:

#include
#include
#include

int principale ( ) {

std::vettore < std::coppia < std::stringa, int >> informazioni;

info.push_back ( std::make_pair ( 'Peter' , quindici ) ) ;
info.push_back ( std::make_pair ( 'Dora' , 29 ) ) ;
info.push_back ( std::make_pair ( 'Hanna' , venti ) ) ;

std::cout << 'Informazioni originali: \N ' ;
per ( const automatico & voce: informazioni ) {
std::cout << 'Nome: ' << entrata.prima << ', Età: ' << voce.secondo << std::endl;
}


std::ordina ( info.begin ( ) , info.fine ( ) ) ;

std::cout << ' \N Informazioni ordinate: \N ' ;
per ( const automatico & voce: informazioni ) {
std::cout << 'Età: ' << voce.secondo << ', Nome: ' << entrata.prima << std::endl;
}

ritorno 0 ;
}


In questo esempio di codice C++, stiamo lavorando con un vettore di coppie per archiviare e manipolare i dati relativi agli individui, in particolare i loro nomi ed età. Inizializziamo un vettore denominato “info ofpairs” all'interno della funzione main(). Successivamente, popoliamo questo vettore con tre coppie, ciascuna contenente il nome e l'età di una persona distinta, utilizzando la funzione 'push_back' e 'std::make_pair' per una creazione efficiente della coppia.

Trasmettiamo le 'Informazioni originali' alla console. Ciò comporta l'iterazione del vettore 'info' e la stampa dei componenti di ciascuna coppia. Quindi, utilizziamo l'algoritmo 'std::sort' per riorganizzare il vettore 'info' in base all'operatore di confronto predefinito per coppie che confronta il primo elemento di ciascuna coppia (in questo caso, i nomi). Dopo l'operazione di ordinamento, iteriamo nuovamente attraverso il vettore 'info' modificato stampando le informazioni ordinate. Questa volta, l'output enfatizza l'ordinamento per età, illustrando il risultato del processo di ordinamento.

Esempio 3: Combinazione di vettori di tipi diversi

Potresti incontrare alcune situazioni in cui devi combinare un'informazione da due vettori. Un vettore di coppie può aiutare a mantenere l'associazione tra gli elementi dei due vettori.

#include
#include

int principale ( ) {
std::vettore < std::stringa > città = { 'New York' , 'Parigi' , 'Tokio' } ;
std::vettore < int > popolazioni = { 8175133 , 2140526 , 37435191 } ;

std::vettore < std::coppia < std::stringa, int >> cittàPopulationPairs;

per ( dimensione_t i = 0 ; io < standard::min ( città.dimensioni ( ) , popolazione.dimensione ( ) ) ; ++i ) {
cityPopulationPairs.push_back ( { città [ io ] , popolazioni [ io ] } ) ;
}

std::cout << 'Coppie città-popolazione:' << std::endl;
per ( const automatico & coppia: cityPopulationPairs ) {
std::cout << 'Città: ' << accoppiare.prima << ', Popolazione: ' << coppia.secondo << std::endl;
}

ritorno 0 ;
}


Nella funzione “main” del codice vengono dichiarati due vettori: “cities” per memorizzare i nomi delle città e “populations” per memorizzare i corrispondenti valori di popolazione.

Un terzo vettore, “cityPopulationPairs”, è definito per memorizzare le coppie di città e le rispettive popolazioni. Ogni coppia è 'std::pair' dove 'std::string' rappresenta il nome della città e 'int' rappresenta la popolazione. Utilizziamo quindi un'iterazione del ciclo 'for' sui vettori (città e popolazioni) utilizzando 'std::min' per garantire che il ciclo non acceda agli elementi oltre la più piccola delle due dimensioni del vettore. All'interno del ciclo, vengono create coppie di informazioni sulla popolazione della città e aggiunte al vettore 'cityPopulationPairs'.

Dopo aver combinato le informazioni, viene utilizzato un altro ciclo 'for' per scorrere le coppie archiviate in 'cityPopulationPairs'. I dati combinati vengono quindi visualizzati sullo standard output utilizzando 'std::cout', che rappresenta chiaramente ciascuna città e la popolazione corrispondente.

Esempio 4: trovare i valori massimo e minimo

Identificare i valori minimo e massimo all'interno di un set di dati è un requisito comune nelle operazioni algoritmiche e statistiche. Possiamo utilizzare un vettore di coppie per tenere traccia dei valori massimo e minimo in una sequenza:

#include
#include
#include

int principale ( ) {
std::vettore < int > numeri = { 5 , 12 , 18 , 3 , 7 , 4 , 33 } ;

std::vettore < std::coppia < tu, tu >> minMaxPairs;

std::ordina ( numeri.iniziano ( ) , numeri.fine ( ) ) ;

minMaxPairs.push_back ( { numeri.front ( ) , numeri.indietro ( ) } ) ;

std::cout << 'Coppie min-max:' << std::endl;
per ( const automatico & coppia: minMaxPairs ) {
std::cout << 'Min: ' << accoppiare.prima << ', Massimo:' << coppia.secondo << std::endl;
}

ritorno 0 ;
}


Il codice C++ fornito dimostra il processo di ricerca dei valori minimo e massimo in un vettore di numeri interi e quindi di memorizzazione di questi valori in un vettore di coppie. Un vettore denominato “numeri” viene inizialmente dichiarato e inizializzato con un insieme di numeri interi. Per identificare in modo efficiente i valori minimo e massimo nel set di dati, il programma utilizza la funzione 'std::sort' dalla libreria di algoritmi.

Questa funzione ha lo scopo di disporre gli elementi in ordine crescente, semplificando il processo di identificazione sia dei valori minimi che massimi nel dataset. L'operazione di ordinamento viene applicata al vettore “numeri” utilizzando numeri.begin() e numeri.end() come parametri di intervallo. Dopo la fase di ordinamento, il programma crea un vettore di coppie, “minMaxPairs”, per memorizzare i valori minimo e massimo calcolati. La funzione “push_back” viene quindi utilizzata per aggiungere una singola coppia che contiene il primo (minimo) e l'ultimo (massimo) elemento del vettore dei numeri ordinati. Infine, il programma restituisce il risultato eseguendo l'iterazione del vettore 'minMaxPairs' e visualizzando i valori minimo e massimo.

Conclusione

In conclusione, il vettore di coppie C++ emerge come una struttura dati potente e flessibile, che aggiunge un livello di versatilità alle attività di programmazione. Attraverso un'esplorazione dettagliata della sua sintassi e delle applicazioni pratiche, abbiamo visto come questo contenitore aiuta a organizzare le associazioni chiave-valore, a combinare le informazioni provenienti da diversi vettori e a tenere traccia dei valori minimo e massimo.