C++ Vektor Pasangan

C Vektor Pasangan



Dalam C++, vektor ialah bekas serba boleh yang boleh mengubah saiz dirinya secara dinamik yang membolehkan manipulasi elemen yang cekap. Manakala pasangan ialah bekas ringkas yang boleh memuatkan dua objek heterogen yang menyediakan cara mudah untuk mengaitkan dan mengurus data berkaitan. Apabila pasangan ini disusun dalam vektor, pembangun memperoleh keupayaan untuk mencipta koleksi dinamik pasangan nilai kunci atau mana-mana gabungan lain dua elemen berbeza.

Struktur data ini amat berguna dalam senario di mana elemen mesti disimpan sebagai pasangan seperti semasa berurusan dengan pasangan nilai kunci atau mewakili perhubungan antara entiti. Dalam artikel ini, kami akan meneroka konsep vektor C++ pasangan dan meneroka pelbagai contoh untuk menggambarkan aplikasi praktikalnya.







Contoh 1: Penggunaan Asas: Mengulangi Vektor Pasangan

Mari kita pertimbangkan contoh asas di mana kita mencipta vektor pasangan yang mewakili nama pelajar dan umur mereka yang sepadan. Mengulang ke atas vektor pasangan adalah serupa dengan mengulang ke atas vektor biasa. Seseorang boleh menggunakan sama ada iterator atau gelung 'untuk' berasaskan julat untuk mendapatkan setiap pasangan dalam vektor.



Contoh ini mempamerkan sintaks untuk 'vektor pasangan' dalam konteks yang bermakna.



#include
#include
#include

int utama ( ) {

std::vektor < std::pasangan < std::rentetan, int >> studentData;

studentData.push_back ( std::make_pair ( 'Adam' , dua puluh ) ) ;
studentData.push_back ( std::make_pair ( 'Bil' , 22 ) ) ;
studentData.push_back ( std::make_pair ( 'Charlie' , dua puluh satu ) ) ;

std::cout << 'Data Pelajar: \n ' ;
untuk ( const auto & pelajar : studentData ) {
std::cout << 'Nama:' << pelajar.pertama << ', Umur: ' << pelajar.kedua << std::endl;
}

kembali 0 ;
}


Dalam coretan kod C++ ini, kami mulakan dengan memasukkan tiga fail pengepala penting: ' ' untuk operasi input dan output, '' untuk menggunakan bekas vektor dan '' untuk mengakses 'std:: templat berpasangan. Pengepala ini membolehkan kami menggunakan fungsi yang penting untuk program kami.





Melangkah ke hadapan, dalam fungsi main(), kami mengisytiharkan vektor bernama 'studentData' menggunakan bekas 'std::vector'. Vektor ini direka bentuk untuk menyimpan pasangan di mana setiap pasangan merangkum nama pelajar (diwakili sebagai 'std::string') dan umur mereka (integer 'int'). Kemudian, kami mengisi vektor 'studentData' dengan tiga pasangan. Menggunakan fungsi 'push_back', pasangan ditambahkan pada penghujung vektor, melaraskan saiznya secara dinamik. Satu gelung kemudian berulang melalui 'studentData', mengekstrak dan mencetak nama dan umur setiap pelajar. Output memaparkan 'Data Pelajar:' yang menekankan perwakilan berstruktur. Nama dan umur pelajar dicetak secara berasingan, dengan jelas membentangkan data yang disimpan.



Contoh 2: Menyusun Vektor Pasangan

Mengisih vektor pasangan ialah operasi biasa, terutamanya apabila berurusan dengan perkaitan nilai kunci. Fungsi “std::sort” daripada pengepala “ ” boleh digunakan untuk tujuan ini. Mari lihat cara mengisih vektor pasangan berdasarkan elemen pertama dan kedua:

#include
#include
#include

int utama ( ) {

std::vektor < std::pasangan < std::rentetan, int >> maklumat;

info.push_back ( std::make_pair ( 'Peter' , lima belas ) ) ;
info.push_back ( std::make_pair ( 'Dora' , 29 ) ) ;
info.push_back ( std::make_pair ( 'Hanna' , dua puluh ) ) ;

std::cout << 'Maklumat Asal: \n ' ;
untuk ( const auto & entri : info ) {
std::cout << 'Nama:' << kemasukan.pertama << ', Umur: ' << kemasukan.kedua << std::endl;
}


std::sort ( info.mulakan ( ) , info.end ( ) ) ;

std::cout << ' \n Maklumat yang disusun: \n ' ;
untuk ( const auto & entri : info ) {
std::cout << 'Umur:' << kemasukan.kedua << ', Nama: ' << kemasukan.pertama << std::endl;
}

kembali 0 ;
}


Dalam contoh kod C++ ini, kami bekerja dengan vektor pasangan untuk menyimpan dan memanipulasi data yang berkaitan dengan individu, khususnya nama dan umur mereka. Kami memulakan vektor bernama 'maklumat pasangan' dalam fungsi main(). Selepas itu, kami mengisi vektor ini dengan tiga pasangan, setiap satu mengandungi nama dan umur orang yang berbeza, menggunakan fungsi 'push_back' dan 'std::make_pair' untuk penciptaan pasangan yang cekap.

Kami mengeluarkan 'Maklumat Asal' ke konsol. Ini melibatkan lelaran melalui vektor 'maklumat' dan mencetak setiap komponen pasangan. Kemudian, kami menggunakan algoritma 'std::sort' untuk menyusun semula vektor 'info' berdasarkan operator perbandingan lalai untuk pasangan yang membandingkan elemen pertama setiap pasangan (dalam kes ini, nama). Berikutan operasi pengisihan, kami sekali lagi mengulangi melalui vektor 'maklumat' yang diubah suai dengan mencetak maklumat yang diisih. Kali ini, output menekankan pesanan yang mengutamakan umur, menggambarkan hasil proses pengisihan.

Contoh 3: Menggabungkan Vektor Pelbagai Jenis

Anda mungkin menghadapi beberapa situasi di mana anda mesti menggabungkan maklumat daripada dua vektor. Vektor pasangan boleh membantu mengekalkan perkaitan antara elemen daripada dua vektor.

#include
#include

int utama ( ) {
std::vektor < std::rentetan > bandar = { 'New York' , 'Paris' , 'Tokyo' } ;
std::vektor < int > populasi = { 8175133 , 2140526 , 37435191 } ;

std::vektor < std::pasangan < std::rentetan, int >> cityPopulationPairs;

untuk ( saiz_t i = 0 ; i < std::min ( bandar.saiz ( ) , populasi.saiz ( ) ) ; ++i ) {
cityPopulationPairs.push_back ( { bandar-bandar [ i ] , populasi [ i ] } ) ;
}

std::cout << 'Pasangan Bandar-Penduduk:' << std::endl;
untuk ( const auto & pasangan : cityPopulationPairs ) {
std::cout << 'Bandar:' << berpasangan.pertama << ', Penduduk: ' << pasangan.kedua << std::endl;
}

kembali 0 ;
}


Dalam fungsi 'utama' kod, dua vektor diisytiharkan: 'bandar' untuk menyimpan nama bandar dan 'populasi' untuk menyimpan nilai populasi yang sepadan.

Vektor ketiga, 'cityPopulationPairs', ditakrifkan untuk menyimpan pasangan bandar dan populasi masing-masing. Setiap pasangan ialah “std::pair” dengan “std::string” mewakili nama bandar dan “int” mewakili populasi. Kami kemudiannya menggunakan lelaran gelung 'untuk' ke atas vektor (bandar dan populasi) menggunakan 'std::min' untuk memastikan bahawa gelung tidak mengakses elemen melebihi dua saiz vektor yang lebih kecil. Di dalam gelung, pasangan maklumat penduduk bandar dibuat dan dilampirkan pada vektor 'cityPopulationPairs'.

Selepas menggabungkan maklumat, satu lagi gelung 'untuk' digunakan untuk melelaran melalui pasangan yang disimpan dalam 'cityPopulationPairs'. Data gabungan kemudiannya dipaparkan pada output standard menggunakan 'std::cout', dengan jelas mewakili setiap bandar dan populasi yang sepadan.

Contoh 4: Mencari Nilai Maksimum dan Minimum

Mengenal pasti nilai minimum dan maksimum dalam set data ialah keperluan biasa dalam operasi algoritma dan statistik. Kita boleh menggunakan vektor pasangan untuk menjejaki kedua-dua nilai maksimum dan minimum dalam urutan:

#include
#include
#include

int utama ( ) {
std::vektor < int > nombor = { 5 , 12 , 18 , 3 , 7 , 4 , 33 } ;

std::vektor < std::pasangan < awak, awak >> minMaxPairs;

std::sort ( nombor.mula ( ) , nombor.akhir ( ) ) ;

minMaxPairs.push_back ( { nombor.depan ( ) , nombor.belakang ( ) } ) ;

std::cout << 'Pasangan Min-Max:' << std::endl;
untuk ( const auto & pasangan : minMaxPairs ) {
std::cout << 'Min:' << berpasangan.pertama << ', Maks: ' << pasangan.kedua << std::endl;
}

kembali 0 ;
}


Kod C++ yang disediakan menunjukkan proses mencari nilai minimum dan maksimum dalam vektor integer dan kemudian menyimpan nilai ini dalam vektor pasangan. Vektor bernama 'nombor' pada mulanya diisytiharkan dan dimulakan dengan set integer. Untuk mengenal pasti nilai minimum dan maksimum dalam set data dengan cekap, program ini menggunakan fungsi 'std::sort' daripada pustaka algoritma.

Fungsi ini bertujuan untuk menyusun elemen dalam tertib menaik, memudahkan proses mengenal pasti kedua-dua nilai minimum dan maksimum dalam set data. Operasi pengisihan digunakan pada vektor 'nombor' menggunakan numbers.begin() dan numbers.end() sebagai parameter julat. Mengikuti langkah pengisihan, program mencipta vektor pasangan, 'minMaxPairs', untuk menyimpan nilai minimum dan maksimum yang dikira. Fungsi 'push_back' kemudiannya digunakan untuk menambah pasangan tunggal yang mengandungi elemen pertama (minimum) dan terakhir (maksimum) vektor nombor diisih. Akhir sekali, program mengeluarkan hasil dengan melelaran melalui vektor 'minMaxPairs' dan memaparkan nilai minimum dan maksimum.

Kesimpulan

Kesimpulannya, vektor pasangan C++ muncul sebagai struktur data yang berkuasa dan fleksibel, menambah lapisan serba boleh pada tugas pengaturcaraan. Melalui penerokaan terperinci tentang sintaks dan aplikasi praktikalnya, kami telah melihat cara bekas ini membantu mengatur perkaitan nilai-kunci, menggabungkan maklumat daripada vektor yang berbeza dan menjejaki nilai minimum dan maksimum.