C++

Cara mengulangi peta di C++

Cara mengulangi peta di C++
Dalam tutorial singkat ini, kita akan melihat bagaimana melakukan iterasi di peta di C++.

Ada beberapa cara untuk mengulangi peta di C++. Dengan versi C++ yang lebih baru, ada cara yang lebih maju untuk beralih pada peta di C++.

Mari kita bahas satu per satu.

Menggunakan for loop dengan stp::map

Kami telah membuat peta bernama negaraIbukotaPeta dan memasukkan pasangan nilai kunci ke dalamnya.


#termasuk
#termasuk
#termasuk
#termasuk
#termasuk
menggunakan namespace std;
int utama()
// Inisialisasi peta
peta>"India", "Delhi"));
negaraIbukotaPeta.masukkan (pasangan)("Nepal", "Kathmandu"));
negaraIbukotaPeta.masukkan (pasangan)("Cina", "Beijing"));
negaraIbukotaPeta.masukkan (pasangan)("Prancis", "Paris"));
// Iterasi menggunakan iterator di for loop
untuk (auto itr = countryCapitalMap.mulai(); itr != countryCapitalMap.akhir(); itu++)

std::cout << itr->pertama // Kunci akses
<< ':'
<< itr->kedua // Nilai akses
<< std::endl;

kembali 0;


Keluaran:

Cina: Beijing
Prancis: Paris
India: Delhi
Nepal: Kathmandu

Seperti yang Anda lihat, kami telah mencetak country:capital(key:value) menggunakan for loop.

Jika Anda perhatikan, kami telah menggunakan mobil type specifier untuk peta iterator karena keterbacaan. Kamu bisa memakai peta:: iterator secara eksplisit juga.
catatan: Jika Anda melihat hasilnya, itu diurutkan berdasarkan kunci dalam urutan menaik. Ini karena std::map adalah wadah asosiatif yang diurutkan dengan Pembanding yang disediakan (versi C++ 11 dan seterusnya). Karena kami tidak menyediakan pembanding apa pun, maka C++ telah menggunakan Pembanding default untuk string.

Menggunakan while loop dengan stp::map

Kita juga bisa menggunakan perulangan while alih-alih perulangan for.


#termasuk
#termasuk
#termasuk
#termasuk >
menggunakan namespace std;
int utama()
// Inisialisasi peta
peta countryCapitalPeta;
// Menyisipkan elemen yang berbeda di peta
negaraIbukotaPeta.masukkan (pasangan)("India", "Delhi"));
negaraIbukotaPeta.masukkan (pasangan)("Nepal", "Kathmandu"));
negaraIbukotaPeta.masukkan (pasangan)("Cina", "Beijing"));
negaraIbukotaPeta.masukkan (pasangan)("Prancis", "Paris"));
// Buat iterator untuk peta dan Inisialisasi dengan awal
auto itr=countryCapitalMap.mulai();
// Iterasi menggunakan iterator di while loop
sementara (itr!=countryCapitalMap.akhir())

std::cout << itr->pertama // Kunci akses
<< ':'
<< itr->kedua // Nilai akses
<< std::endl;
itr++;

kembali 0;


Keluaran:

Cina: Beijing
Prancis: Paris
India: Delhi
Nepal: Kathmandu

Menggunakan Rentang berbasis untuk loop (versi C++ 11 dan seterusnya)

Jika Anda menggunakan versi C++ 11, maka ini adalah cara paling elegan untuk beralih di atas peta di C++. Anda dapat menghindari loop cubersome tradisional dan menggunakan ini sebagai gantinya.


#termasuk
#termasuk
#termasuk
menggunakan namespace std;
int utama()
// Inisialisasi peta
peta countryCapitalPeta;
// Menyisipkan elemen yang berbeda di peta
negaraIbukotaPeta.masukkan (pasangan)("India", "Delhi"));
negaraIbukotaPeta.masukkan (pasangan)("Nepal", "Kathmandu"));
negaraIbukotaPeta.masukkan (pasangan)("Cina", "Beijing"));
negaraIbukotaPeta.masukkan (pasangan)("Prancis", "Paris"));
// Iterasi menggunakan iterator di for loop
for (const auto &ele : countryCapitalMap)
cout <
kembali 0;


Keluaran:
Cina: Beijing
Prancis: Paris
India: Delhi
Nepal: Kathmandu

Menggunakan loop for berbasis rentang dengan pasangan nilai kunci (versi C++ 17 dan seterusnya)

Versi ini didukung dari c++17 dan seterusnya dan menyediakan cara yang lebih fleksibel untuk iterasi di atas peta. Anda dapat secara eksplisit mengakses pasangan nilai kunci di peta yang memberikan solusi yang lebih mudah dibaca.


#termasuk
#termasuk
#termasuk
menggunakan namespace std;
int utama()
// Inisialisasi peta
peta countryCapitalPeta;
// Menyisipkan elemen yang berbeda di peta
negaraIbukotaPeta.masukkan (pasangan)("India", "Delhi"));
negaraIbukotaPeta.masukkan (pasangan)("Nepal", "Kathmandu"));
negaraIbukotaPeta.masukkan (pasangan)("Cina", "Beijing"));
negaraIbukotaPeta.masukkan (pasangan)("Prancis", "Paris"));
// Iterasi menggunakan iterator di for loop
for (const auto& [key, value] : countryCapitalMap)
cout << key << ":" << value << "\n";

kembali 0;


Keluaran:
Cina: Beijing
Prancis: Paris
India: Delhi
Nepal: Kathmandu

Itu saja tentang cara mengulang peta di C++. Selamat mengkode!

Pertempuran Untuk Wesnoth 1.13.6 Pengembangan Dirilis
Pertempuran Untuk Westnoth 1.13.6 dirilis bulan lalu, adalah rilis pengembangan keenam dalam 1.13.x series dan memberikan sejumlah peningkatan, teruta...
Cara Menginstal League Of Legends di Ubuntu 14.04
Jika Anda adalah penggemar League of Legends, maka ini adalah kesempatan bagi Anda untuk menguji coba League of Legends. Perhatikan bahwa LOL didukung...
Instal Game Strategi OpenRA terbaru di Ubuntu Linux
OpenRA adalah mesin game Strategi Waktu Nyata Libre/Gratis yang membuat ulang game Westwood awal seperti Command & Conquer klasik: Red Alert. Mod yang...