Peta masuk C++ Perpustakaan Templat Standar (STL)

Apa yang dimaksud dengan Peta C++? Sintaksis

In C++, Sebuah MAP adalah wadah asosiatif yang menyimpan item dalam bentuk yang dipetakan. Setiap item di peta terdiri dari nilai kunci dan nilai yang dipetakan. Dua nilai yang dipetakan tidak dapat berbagi nilai kunci yang sama.

Nilai kuncinya bagus untuk menyortir dan mengidentifikasi elemen secara unik. Nilai yang dipetakan adalah untuk menyimpan konten yang terkait dengan kunci. Keduanya mungkin berbeda tipenya, tetapi tipe anggota menggabungkannya melalui tipe pasangan yang menggabungkan keduanya.

Mengapa menggunakan std::peta?

Berikut alasan menggunakan peta:

  • std:: map menyimpan kunci unik hanya dalam urutan yang diurutkan berdasarkan kriteria penyortiran yang dipilih.
  • Mencari elemen dengan mudah dan cepat menggunakan kunci.
  • Hanya satu elemen yang melekat pada setiap kunci.
  • std::map dapat digunakan sebagai array asosiatif.
  • std::map dapat diimplementasikan menggunakan pohon biner (seimbang).

Sintaksis

Untuk mendeklarasikan std::map, gunakan sintaks ini:

std::map<key_datatype, value_datatype>map_name; 
  • The key_datatype menunjukkan tipe data kunci peta.
  • The value_datatype menunjukkan tipe data dari nilai yang sesuai dengan kunci peta.
  • The map_name adalah nama petanya.

Sebagai contoh:

map<string, int> my_map; 

Kami mendeklarasikan peta bernama my_map. Peta akan memiliki string sebagai kunci tipe data dan integer sebagai nilai-nilai tipe data.

Tipe anggota

Fungsi anggota dapat menggunakan tipe anggota berikut sebagai parameter atau tipe pengembalian:

  • tipe_kunci: Kunci (Parameter pertama dalam templat)
  • tipe_dipetakan: T (Parameter kedua di template)
  • perbandingan_kunci: Bandingkan (Parameter ketiga dalam template)
  • pengalokasi_tipe: Alloc (Parameter keempat dalam template)
  • tipe_nilai: pasangan
  • nilai_bandingkan: Kelas fungsi bersarang untuk membandingkan elemen
  • referensi: pengalokasi_tipe::referensi
  • referensi_konstitusi: pengalokasi_tipe::const_reference
  • petunjuk: pengalokasi_tipe::penunjuk
  • const_pointer: pengalokasi_tipe::const_pointer
  • iterator: iterator dua arah ke value_type
  • const_iterator: iterator dua arah ke const value_type
  • membalikkan_iterator: iterator terbalik
  • const_reverse_iterator: iterator terbalik konstan
  • perbedaan_tipe: ptrdiff_t
  • tipe ukuran: ukuran_t

Fungsi Bawaan std::map

std::map hadir dengan fungsi bawaan. Beberapa di antaranya termasuk:

  • mulai() - Fungsi ini mengembalikan iterator ke item pertama peta.
  • ukuran() -Fungsi ini mengembalikan jumlah item dalam peta.
  • kosong() -Fungsi ini mengembalikan nilai Boolean yang menunjukkan apakah peta kosong.
  • masukkan( pasangan(kunci, nilai)) – Fungsi ini menyisipkan pasangan nilai kunci baru ke peta.
  • temukan(val) – Fungsi ini memberikan iterator ke elemen val jika ditemukan. Jika tidak, fungsi ini akan mengembalikan m.end().
  • Hapus (posisi iterator) – Fungsi ini menghapus item pada posisi yang ditunjuk oleh iterator.
  • hapus(konstan g) – Fungsi ini menghapus nilai kunci g dari peta.
  • Jernih () -Fungsi ini menghapus semua item dari peta.

Iterasi pada Elemen Peta

Anda dapat mengulangi elemen peta. Kita hanya perlu membuat iterator dan menggunakannya untuk ini.
Sebagai contoh:

Contoh 1:

#include <iostream>
#include <string>
#include <map> 

using namespace std;
int main() {

	map<int, string> Students;

	Students.insert(std::pair<int, string>(200, "Alice"));

	Students.insert(std::pair<int, string>(201, "John"));

	cout << "Map size is: " << Students.size() << endl;

	cout << endl << "Default map Order is: " << endl;

	for (map<int, string>::iterator it = Students.begin(); it != Students.end(); ++it) {

		cout << (*it).first << ": " << (*it).second << endl;
	}
}

Keluaran:

Iterasi pada Elemen Peta

Berikut ini tangkapan layar kodenya:

Iterasi pada Elemen Peta

Penjelasan Kode:

  1. Sertakan file header iostream ke dalam kode kita untuk menggunakan fungsinya.
  2. Sertakan file header string ke dalam kode kita untuk menggunakan fungsinya.
  3. Sertakan file header peta ke dalam kode kita untuk menggunakan fungsinya.
  4. Sertakan namespace std ke dalam kode kita untuk menggunakan kelasnya tanpa memanggilnya.
  5. Sebut main() fungsi. Tanda { menandai awal dari isi fungsi.
  6. Buat peta bernama Siswa yang kuncinya berupa bilangan bulat, dan nilainya berupa string.
  7. Masukkan nilai ke dalam peta Siswa. Kunci 200 dan nilai Alice akan dimasukkan ke dalam peta.
  8. Masukkan nilai ke dalam peta Siswa. Kunci 201 dan nilai John akan dimasukkan ke dalam peta.
  9. Gunakan size() berfungsi untuk mendapatkan ukuran peta bernama Siswa. Ini akan mengembalikan 2.
  10. Cetak beberapa teks di konsol.
  11. Gunakan perulangan for untuk membuat iterator yang diberi nama untuk mengulangi elemen peta bernama Siswa.
  12. Cetak nilai peta Siswa di konsol.
  13. Akhir dari badan perulangan for.
  14. Ujung tubuh main() fungsi.

Memasukkan data ke std::map

Anda dapat memasukkan item ke std::map menggunakan insert() fungsi. Ingatlah bahwa kunci std::map harus unik.

Jadi, pertama-tama ia memeriksa apakah setiap kunci ada di peta. Jika ada, entri tidak akan disisipkan, namun mengembalikan iterator untuk entri yang ada. Jika tidak ada, entri dimasukkan.

Fungsi ini memiliki variasi berikut:

  • masukkan (pasangan) – dengan variasi ini, pasangan nilai kunci dimasukkan ke dalam peta.
  • masukkan(mulai_itr, akhir_itr) – dengan variasi ini, entri akan dimasukkan dalam rentang yang ditentukan oleh start_itr dan end_itr dari peta lain.

The masukkan_atau_assing() fungsi bekerja dengan cara yang sama seperti insert() fungsi, tetapi jika kunci yang diberikan sudah ada di peta, nilainya akan diubah.

Contoh 2:

#include <map>
#include <iostream>

using namespace std;

int main() {

	map<int, int> m{ {1,3} , {2,4} , {3,5} };

	m.insert({ 5, 6 });
	m.insert({ 1, 8 });

	m.insert_or_assign(1, 6);  
	
	cout << "Key\tElement\n";
	for (auto itr = m.begin(); itr != m.end(); ++itr) {
		cout << itr->first << '\t' << itr->second << '\n';
	}
	return 0;
}

Keluaran:

Memasukkan data ke std::map

Berikut ini tangkapan layar kodenya:

Memasukkan data ke std::map

Penjelasan Kode:

  1. Sertakan file header peta ke dalam kode kita untuk menggunakan fungsinya.
  2. Sertakan file header iostream ke dalam kode kita untuk menggunakan fungsinya.
  3. Sertakan namespace std ke dalam kode kita untuk menggunakan kelasnya tanpa memanggilnya.
  4. Sebut main() fungsi. Tanda { menandai awal dari isi fungsi.
  5. Buat peta bernama m yang kuncinya berupa bilangan bulat, dan nilainya berupa bilangan bulat. Tiga entri telah dibuat ke dalam peta.
  6. Memasukkan entri baru ke dalam peta m. Kunci 5 dan nilai 6 akan dimasukkan ke dalam peta.
  7. Mencoba membuat entri ke kunci yang sudah ada. Karena kunci 1 sudah ada di peta, entri tidak akan dibuat.
  8. Menggunakan insert_or_assign() berfungsi untuk menyisipkan atau mengubah entri yang sudah ada. Karena kunci 1 sudah ada, nilainya akan diubah menjadi 6.
  9. Cetak beberapa teks di konsol. Karakter “\t” membuat spasi horizontal sedangkan karakter “\n” menggerakkan kursor mouse ke baris berikutnya.
  10. Menggunakan untuk loop untuk membuat iterator bernama itr untuk mengulangi elemen peta bernama m.
  11. Cetak nilai peta m di konsol. Karakter “\t” menciptakan spasi horizontal antara setiap kunci dan nilai terkaitnya. Sebaliknya, karakter “\n” memindahkan kursor mouse ke baris berikutnya setelah setiap iterasi.
  12. Akhir dari badan perulangan for.
  13. Program harus mengembalikan nilai setelah berhasil diselesaikan.
  14. Ujung tubuh main() fungsi.

Mencari di Peta

Kita bisa menggunakan find() fungsi untuk mencari elemen dalam peta berdasarkan kuncinya. Jika kuncinya tidak ditemukan, fungsi akan mengembalikan std::map::end. Jika tidak, iterator dari elemen yang dicari akan dikembalikan.

Contoh 3:

#include <iostream>
#include <string>
#include <map> 
using namespace std;
int main() {
	map<int, string> Students;
	Students.insert(std::pair<int, string>(200, "Alice"));
	Students.insert(std::pair<int, string>(201, "John"));
	std::map<int, string>::iterator it = Students.find(201);
	if (it != Students.end()) {
		std::cout << endl << "Key 201 has the value: => "<< Students.find(201)->second << '\n';
	}
}

Keluaran:

Mencari di Peta

Berikut ini tangkapan layar kodenya:

Mencari di Peta

Penjelasan Kode:

  1. Sertakan file header iostream ke dalam kode kami untuk menggunakan fungsinya tanpa mendapatkan kesalahan.
  2. Sertakan file header string ke dalam kode kami untuk menggunakan fungsinya tanpa mendapatkan kesalahan.
  3. Sertakan file header peta ke dalam kode kami untuk menggunakan fungsinya tanpa kesalahan.
  4. Sertakan namespace std ke dalam kode kita untuk menggunakan kelasnya tanpa memanggilnya.
  5. Sebut main() fungsi. Tanda { menandai awal dari badan main() fungsi.
  6. Buat peta bernama Siswa yang kuncinya berupa bilangan bulat dan string nilai.
  7. Masukkan nilai ke dalam peta Siswa. Kunci 200 dan nilai Alice akan dimasukkan ke dalam peta.
  8. Masukkan nilai ke dalam peta Siswa. Kunci 201 dan nilai John akan dimasukkan ke dalam peta.
  9. Cari nilai yang terkait dengan kunci 201.
  10. Gunakan pernyataan if untuk memeriksa apakah nilai kunci ditemukan.
  11. Cetak nilai kunci di samping beberapa teks di konsol.
  12. Akhir dari isi pernyataan if.
  13. Ujung tubuh main() fungsi.

Menghapus Data dari Peta

Kita bisa menggunakan erase() berfungsi untuk menghapus nilai dari peta. Kami cukup membuat iterator yang menunjuk ke elemen yang akan dihapus. Iterator kemudian diteruskan ke erase() fungsi.

Contoh 4:

#include <iostream>
#include <string>
#include <map>

using namespace std;
int main() {

	map<std::string, int> my_map;

	my_map.insert(std::make_pair("cow", 1));

	my_map.insert(std::make_pair("cat", 2));

	my_map["lion"] = 3;

	map<std::string, int>::iterator it = my_map.find("cat");

	my_map.erase(it);

	for (map<string, int>::iterator it = my_map.begin(); it != my_map.end(); ++it)

		cout << (*it).first << ": " << (*it).second << endl;

  return 0;
}

Keluaran:

Menghapus Data dari Peta

Berikut ini tangkapan layar kodenya:

Menghapus Data dari Peta

Penjelasan Kode:

  1. Sertakan file header iostream ke dalam kode kita untuk menggunakan fungsinya.
  2. Sertakan file header string ke dalam kode kita untuk menggunakan fungsinya.
  3. Sertakan file header peta ke dalam kode kita untuk menggunakan fungsinya.
  4. Sertakan namespace std ke dalam kode kita untuk menggunakan kelasnya tanpa memanggilnya.
  5. Sebut main() fungsi. Tanda { menandai awal dari badan main() fungsi.
  6. Buat peta bernama my_map yang kuncinya berupa string dan nilai bilangan bulat.
  7. Masukkan nilai ke dalam peta my_map. Kunci Sapi dan nilai 1 akan dimasukkan ke dalam peta.
  8. Masukkan nilai ke dalam peta my_map. Kunci Cat dan nilai 2 akan dimasukkan ke dalam peta.
  9. Tambahkan nilai 3 ke dalam peta my_map dengan kunci singa.
  10. Buat iterator untuk mengulangi peta my_map mencari kucing kunci.
  11. Hapus elemen yang ditunjuk oleh iterator.
  12. Gunakan iterator untuk mengulangi elemen peta my_map dari awal hingga akhir.
  13. Cetak isi peta my_map di konsol.
  14. Program harus mengembalikan keluaran setelah berhasil diselesaikan.
  15. Ujung tubuh main() fungsi.

Ringkasan

  • Peta adalah wadah asosiatif yang menyimpan item dalam bentuk yang dipetakan.
  • Setiap item di peta memiliki nilai kunci dan nilai yang dipetakan.
  • Dalam peta, dua nilai yang dipetakan tidak dapat berbagi nilai kunci.
  • Nilai-nilai kunci membantu dalam menyortir dan mengidentifikasi elemen secara unik.
  • Nilai yang dipetakan membantu dalam menyimpan konten yang terkait dengan kunci.
  • C++ peta menyimpan kunci unik dalam urutan yang diurutkan.
  • Bekerja dengan C++ peta, kami membuat iterator untuk mengulangi elemen.
  • Dengan iterator, kita dapat melakukan tugas-tugas seperti mencari dan menghapus item dari peta.