Apa itu std :: peta?
Dalam C ++, MAP adalah wadah bersekutu yang menyimpan item dalam bentuk yang dipetakan. Setiap item dalam peta terdiri daripada nilai kunci dan nilai yang dipetakan. Dua nilai yang dipetakan tidak dapat berkongsi nilai kunci yang sama.
Nilai utama adalah baik untuk menyusun dan mengenal pasti elemen secara unik. Nilai yang dipetakan adalah untuk menyimpan kandungan yang berkaitan dengan kunci. Kedua-duanya mungkin berbeza jenis, tetapi jenis anggota menggabungkannya melalui jenis pasangan yang menggabungkan kedua-duanya.
Dalam tutorial C ++ ini, anda akan belajar:
- Apa itu std :: peta?
- Mengapa menggunakan std :: peta?
- Sintaks:
- Jenis ahli:
- Fungsi terbina dalam
- Pemanasan di atas Unsur Peta
- Memasukkan data dalam std :: peta:
- Mencari dalam Peta
- Memadam Data dari Peta
Mengapa menggunakan std :: peta?
Berikut adalah sebab penggunaan peta:
- std :: peta menyimpan kunci unik hanya mengikut urutan berdasarkan kriteria penyusun yang dipilih.
- Sangat mudah dan pantas untuk mencari elemen menggunakan kunci.
- Hanya satu elemen yang dilampirkan pada setiap kunci.
- std :: peta boleh digunakan sebagai susunan bersekutu.
- std :: peta dapat dilaksanakan dengan menggunakan pokok binari (seimbang).
Sintaks:
Untuk menyatakan std :: peta, gunakan sintaks ini:
std::mapmap_name;
- Key_datatype menunjukkan jenis data kunci peta.
- Value_datatype menunjukkan jenis data nilai yang sesuai dengan kunci peta.
- Nama_ peta adalah nama peta.
Sebagai contoh:
mapmy_map;
Kami mengisytiharkan peta bernama my_map. Peta akan mempunyai rentetan sebagai jenis data utama dan bilangan bulat sebagai jenis data nilai .
Jenis ahli:
Fungsi anggota boleh menggunakan jenis anggota berikut sebagai parameter atau jenis pengembalian:
- key_type: Key (Parameter pertama dalam templat)
- mapping_type: T (Parameter kedua dalam templat)
- key_compare: Bandingkan (Parameter ketiga dalam templat)
- type_ator : Alloc (Parameter keempat dalam templat)
- value_type: pair
- value_compare: Kelas fungsi bersarang untuk membandingkan unsur
- rujukan: dialator_type :: rujukan
- const_reference: assignator_type :: const_reference
- penunjuk: jenis_pemilikator :: penunjuk
- const_pointer: assignator_type :: const_pointer
- iterator: iterator dua arah ke nilai_jenis
- const_iterator: iterator dwi-arah ke const__ type
- reverse_iterator: iterator terbalik
- const_reverse_iterator: iterator terbalik tetap
- perbezaan_jenis: ptrdiff_t
- size_type: size_t
Fungsi terbina dalam
std :: peta dilengkapi dengan fungsi terbina dalam. Beberapa di antaranya termasuk:
- begin () - Fungsi ini mengembalikan iterator ke item pertama peta.
- size () - Fungsi ini mengembalikan jumlah item dalam peta.
- kosong () - Fungsi ini mengembalikan nilai Boolean yang menunjukkan sama ada peta kosong.
- masukkan (pasangan (kunci, nilai)) - Fungsi ini memasukkan pasangan kunci-nilai baru ke peta.
- cari (val) - Fungsi ini memberikan iterator ke elemen val jika dijumpai. Jika tidak, ia akan mengembalikan m.end ().
- Padam (kedudukan iterator) - Fungsi ini menghapus item pada kedudukan yang ditunjukkan oleh iterator.
- padam (const g) - Fungsi ini menghapus nilai kunci g dari peta.
- Hapus () - Fungsi ini menghapus semua item dari peta.
Pemanasan di atas Unsur Peta
Anda boleh mengulang-ulang elemen peta. Kita hanya perlu membuat iterator dan menggunakannya untuk ini. Sebagai contoh:
Contoh 1:
#include#include #include
Pengeluaran:
Berikut adalah tangkapan skrin kod:
Penjelasan Kod:
- Sertakan fail header iostream ke dalam kod kami untuk menggunakan fungsinya.
- Sertakan fail tajuk rentetan ke dalam kod kami untuk menggunakan fungsinya.
- Sertakan fail tajuk peta ke dalam kod kami untuk menggunakan fungsinya.
- Sertakan ruang nama std ke dalam kod kami untuk menggunakan kelasnya tanpa memanggilnya.
- Panggil fungsi utama (). {Menandakan permulaan badan fungsi.
- Buat peta bernama Pelajar di mana kunci akan berupa bilangan bulat, dan nilainya berupa tali.
- Masukkan nilai ke dalam Pelajar peta. Kunci 200 dan nilai Alice akan dimasukkan ke dalam peta.
- Masukkan nilai ke dalam Pelajar peta. Kunci 201 dan nilai John akan dimasukkan ke dalam peta.
- Gunakan fungsi ukuran () untuk mendapatkan ukuran peta bernama Pelajar. Ini harus mengembalikan 2.
- Cetak sebilangan teks pada konsol.
- Gunakan loop for untuk membuat iterator yang dinamakannya untuk melakukan iterasi ke atas elemen peta yang bernama Pelajar.
- Mencetak nilai peta Pelajar di konsol.
- Hujung badan gelung untuk.
- Akhir badan utama () fungsi.
Memasukkan data dalam std :: peta
Anda boleh memasukkan item ke dalam std :: peta menggunakan fungsi insert (). Ingat bahawa kunci peta std :: mestilah unik.
Oleh itu, ia memeriksa sama ada setiap kunci ada di dalam peta. Sekiranya ada, entri tidak akan dimasukkan, tetapi mengembalikan iterator untuk entri yang ada. Sekiranya tidak ada, entri dimasukkan.
Fungsi ini mempunyai variasi berikut:
- masukkan (pasangan) - dengan variasi ini, pasangan nilai-kunci dimasukkan ke dalam peta.
- insert (start_itr, end_itr) - dengan variasi ini, entri akan dimasukkan dalam julat yang ditentukan oleh start_itr dan end_itr dari peta lain.
Fungsi insert_or_assing () berfungsi dengan cara yang sama seperti fungsi insert (), tetapi jika kunci yang diberikan sudah ada di peta, nilainya akan diubah.
Contoh 2:
#include
Pengeluaran:
Berikut adalah tangkapan skrin kod:
Penjelasan Kod:
- Sertakan fail tajuk peta ke dalam kod kami untuk menggunakan fungsinya.
- Sertakan fail header iostream ke dalam kod kami untuk menggunakan fungsinya.
- Sertakan ruang nama std ke dalam kod kami untuk menggunakan kelasnya tanpa memanggilnya.
- Panggil fungsi utama (). {Menandakan permulaan badan fungsi.
- Buat peta bernama m di mana kunci akan menjadi bilangan bulat, dan nilainya akan menjadi bilangan bulat. Tiga entri telah dibuat ke dalam peta.
- Masukkan entri baru ke dalam peta m. Kekunci 5 dan nilai 6 akan dimasukkan ke dalam peta.
- Cuba membuat entri ke kunci yang sudah ada. Oleh kerana kunci 1 sudah ada di peta, entri tidak akan dibuat.
- Menggunakan fungsi insert_or_assign () untuk memasukkan atau mengubah entri yang ada. Oleh kerana kunci 1 sudah ada, nilainya akan diubah menjadi 6.
- Cetak sebilangan teks pada konsol. Karakter "\ t" mencipta ruang mendatar sementara watak "\ n" menggerakkan kursor tetikus ke baris seterusnya.
- Gunakan loop for untuk membuat iterator bernama itr untuk melakukan iterasi ke atas elemen peta bernama m.
- Cetak nilai peta m pada konsol. Watak "\ t" mencipta ruang mendatar antara setiap kekunci dan nilai yang sepadan. Sebaliknya, watak "\ n" menggerakkan kursor tetikus ke baris seterusnya setelah setiap lelaran.
- Akhir badan untuk gelung.
- Program mesti mengembalikan nilai setelah berjaya diselesaikan.
- Akhir badan utama () fungsi.
Mencari dalam Peta
Kita boleh menggunakan fungsi find () untuk mencari elemen dalam peta dengan kunci mereka. Sekiranya kunci tidak dijumpai, fungsi mengembalikan std :: map :: end. Jika tidak, iterator elemen yang dicari akan dikembalikan.
Contoh 2:
#include#include #include
Pengeluaran:
Berikut adalah tangkapan skrin kod:
Penjelasan Kod:
- Sertakan fail header iostream ke dalam kod kami untuk menggunakan fungsinya tanpa mendapat kesalahan.
- Sertakan fail tajuk rentetan ke dalam kod kami untuk menggunakan fungsinya tanpa mendapat kesalahan.
- Sertakan fail tajuk peta ke dalam kod kami untuk menggunakan fungsinya tanpa mendapat kesalahan.
- Sertakan ruang nama std ke dalam kod kami untuk menggunakan kelasnya tanpa memanggilnya.
- Panggil fungsi utama (). {Menandakan permulaan fungsi utama ().
- Buat peta bernama Pelajar yang kuncinya berupa nombor bulat dan rentetan nilai.
- Masukkan nilai ke dalam Pelajar peta. Kunci 200 dan nilai Alice akan dimasukkan ke dalam peta.
- Masukkan nilai ke dalam Pelajar peta. Kunci 201 dan nilai John akan dimasukkan ke dalam peta.
- Cari nilai yang dikaitkan dengan kunci 201.
- Gunakan pernyataan if untuk memeriksa sama ada nilai kunci dijumpai.
- Cetak nilai kunci di samping beberapa teks pada konsol.
- Akhir badan sekiranya penyataan.
- Akhir badan utama () fungsi.
Memadam Data dari Peta
Kita boleh menggunakan fungsi erase () untuk menghapus nilai dari peta. Kami hanya membuat iterator yang menunjukkan elemen yang akan dihapuskan. Iterator kemudian diteruskan ke fungsi erase ().
Contoh 3:
#include#include #include
Pengeluaran:
Berikut adalah tangkapan skrin kod:
Penjelasan Kod:
- Sertakan fail header iostream ke dalam kod kami untuk menggunakan fungsinya.
- Sertakan fail tajuk rentetan ke dalam kod kami untuk menggunakan fungsinya.
- Sertakan fail tajuk peta ke dalam kod kami untuk menggunakan fungsinya.
- Sertakan ruang nama std ke dalam kod kami untuk menggunakan kelasnya tanpa memanggilnya.
- Panggil fungsi utama (). {Menandakan permulaan fungsi utama () fungsi.
- Buat peta bernama my_map yang kuncinya akan rentetan dan bilangan bulat.
- Masukkan nilai ke dalam peta my_map. Kekunci Lembu dan nilai 1 akan dimasukkan ke dalam peta.
- Masukkan nilai ke dalam peta my_map. Kunci Kucing dan nilai 2 akan dimasukkan ke dalam peta.
- Tambahkan nilai 3 ke dalam peta my_map dengan kunci singa.
- Buat iterator untuk melancarkan peta my_map mencari kucing kunci.
- Padamkan elemen yang ditunjukkan oleh iterator.
- Gunakan iterator untuk mengulang-ulang elemen peta my_map dari awal hingga akhir.
- Cetak kandungan peta my_map di konsol.
- Program mesti mengembalikan output setelah berjaya diselesaikan.
- Akhir badan utama () fungsi.
Ringkasan:
- Peta adalah bekas bersekutu yang menyimpan barang dalam bentuk yang dipetakan.
- Setiap item dalam peta mempunyai nilai kunci dan nilai yang dipetakan.
- Dalam peta, dua nilai yang dipetakan tidak dapat berkongsi nilai utama.
- Nilai-nilai penting membantu dalam menyusun dan mengenal pasti elemen secara unik.
- Nilai yang dipetakan membantu menyimpan kandungan yang berkaitan dengan kunci.
- Peta C ++ menyimpan kunci unik mengikut urutan.
- Untuk bekerjasama dengan peta C ++, kami membuat iterator untuk mengulang elemen.
- Dengan iterator, kita dapat melakukan tugas seperti mencari dan menghapus item dari peta.