Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

Peta di C++ Standard Template Library (STL) dengan Contoh Cetak

Apa itu std::map?

Dalam 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 kunci bagus untuk menyortir dan mengidentifikasi elemen secara unik. Nilai yang dipetakan adalah untuk menyimpan konten yang terkait dengan kunci. Keduanya mungkin berbeda dalam tipe, tetapi tipe anggota menggabungkannya melalui tipe pasangan yang menggabungkan keduanya.

Dalam tutorial C++ ini, Anda akan belajar:

Mengapa menggunakan std::map?

Berikut adalah alasan untuk menggunakan peta:

Sintaks:

Untuk mendeklarasikan std::map, gunakan sintaks ini:

std::map<key_datatype, value_datatype>map_name; 

Misalnya:

map<string, int> my_map; 

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

Jenis anggota:

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

Fungsi Bawaan

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

Mengulangi Elemen Peta

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

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:

Berikut adalah screenshot kodenya:

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. Panggil fungsi main(). { menandai awal dari isi fungsi.
  6. Buat peta bernama Siswa di mana kuncinya adalah bilangan bulat, dan nilainya adalah string.
  7. Memasukkan nilai ke dalam peta Siswa. Kunci 200 dan nilai Alice akan dimasukkan ke dalam peta.
  8. Memasukkan nilai ke dalam peta Siswa. Kunci 201 dan nilai John akan dimasukkan ke dalam peta.
  9. Gunakan fungsi size() untuk mendapatkan ukuran peta bernama Siswa. Ini akan mengembalikan 2.
  10. Cetak beberapa teks di konsol.
  11. Gunakan perulangan for untuk membuat iterator bernama iterator untuk mengulangi elemen peta bernama Siswa.
  12. Cetak nilai peta Siswa di konsol.
  13. Akhir dari badan for loop.
  14. Akhir dari isi fungsi main().

Memasukkan data di std::map

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

Jadi, pertama kali memeriksa apakah setiap kunci ada di peta. Jika ada, entri tidak akan dimasukkan, tetapi mengembalikan iterator untuk entri yang ada. Jika tidak ada, entri akan dimasukkan.

Fungsi memiliki variasi berikut:

insert_or_assing() fungsi bekerja dengan cara yang sama seperti fungsi insert(), 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:

Berikut adalah screenshot kodenya:

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. Panggil fungsi main(). { menandai awal dari isi fungsi.
  5. Buat peta bernama m di mana kuncinya adalah bilangan bulat, dan nilainya adalah 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 fungsi insert_or_assign() untuk menyisipkan atau memodifikasi entri yang ada. Karena kunci 1 sudah ada, nilainya akan diubah menjadi 6.
  9. Cetak beberapa teks di konsol. Karakter “\t” membuat spasi horizontal sementara karakter “\n” memindahkan kursor mouse ke baris berikutnya.
  10. Gunakan for loop untuk membuat iterator bernama itr untuk mengulangi elemen peta bernama m.
  11. Cetak nilai peta m di konsol. Karakter “\t” membuat spasi horizontal antara setiap tombol dan nilainya yang sesuai. Sebaliknya, karakter “\n” memindahkan kursor mouse ke baris berikutnya setelah setiap iterasi.
  12. Akhir dari badan for loop.
  13. Program harus mengembalikan nilai setelah berhasil diselesaikan.
  14. Akhir dari isi fungsi main().

Menelusuri di Peta

Kita dapat menggunakan fungsi find() untuk mencari elemen di peta dengan kuncinya. Jika kunci tidak ditemukan, fungsi mengembalikan std::map::end. Jika tidak, iterator dari elemen yang dicari akan dikembalikan.

Contoh 2:

#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:

Berikut adalah screenshot kodenya:

Penjelasan Kode:

  1. Sertakan file header iostream ke dalam kode kita untuk menggunakan fungsinya tanpa mendapatkan kesalahan.
  2. Sertakan file header string ke dalam kode kita untuk menggunakan fungsinya tanpa mendapatkan kesalahan.
  3. Sertakan file header peta ke dalam kode kami untuk menggunakan fungsinya tanpa mendapatkan kesalahan.
  4. Sertakan namespace std ke dalam kode kita untuk menggunakan kelasnya tanpa memanggilnya.
  5. Panggil fungsi main(). { menandai awal dari isi fungsi main().
  6. Buat peta bernama Siswa yang kuncinya akan berupa bilangan bulat dan nilai string.
  7. Memasukkan 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. Akhir dari isi fungsi main().

Menghapus Data dari Peta

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

Contoh 3:

#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:

Berikut adalah screenshot kodenya:

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. Panggil fungsi main(). { menandai awal dari isi fungsi main().
  6. Buat peta bernama my_map yang kuncinya berupa string dan nilai integer.
  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 output setelah berhasil diselesaikan.
  15. Akhir dari isi fungsi main().

Ringkasan:


Bahasa C

  1. C Fungsi Pustaka Standar
  2. Operator di C++ dengan Contoh:Apa itu, Jenis dan Program
  3. C++ do… while loop dengan Contoh
  4. C++ Switch Case Statement dengan CONTOH
  5. C++ Alokasi Dinamis Array dengan Contoh
  6. C++ Pointer dengan Contoh
  7. Operator C++ Overloading dengan Contoh
  8. std::daftar di C++ dengan Contoh
  9. Fungsi C++ dengan Contoh Program
  10. Perbedaan antara Struktur dan Kelas:Dijelaskan dengan Contoh C++