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

Menguasai std::map di C++: Panduan Komprehensif dengan Contoh Kode

Apa Itu std::map?

Dalam Standard Template Library (STL) C++, std::map adalah kontainer asosiatif yang menyimpan elemen sebagai pasangan kunci-nilai. Setiap kunci unik dan kontainer secara otomatis menjaga elemennya terurut sesuai dengan fungsi perbandingan kunci (secara default, std::less). Nilai dapat berupa tipe apa pun dan diakses melalui kunci yang sesuai.

Menggunakan std::map?

Sintaks

Deklarasikan peta dengan:

std::map<KeyType, ValueType> mapName;

Contoh:

std::map<std::string, int> ageMap;

Tipe Anggota

Fungsi Bawaan

Melakukan Iterasi Elemen Peta

Iterator memberi Anda kontrol penuh atas urutan penelusuran, yang selalu diurutkan berdasarkan kunci.

#include <iostream> #include <string> #include <map> using namespace std; int main() { map<int, string> students; students.insert({200, "Alice"}); students.insert({201, "John"}); cout << "Map size is: " << students.size() << endl; cout << endl << "Default map order:" << endl; for (auto it = students.begin(); it != students.end(); ++it) { cout << it->first << ": " << it->second << endl; } return 0; }

Output:

Menguasai std::map di C++: Panduan Komprehensif dengan Contoh Kode

Menyisipkan Data ke std::map

Gunakan insert() untuk entri baru; itu secara diam-diam menolak duplikat. Untuk menimpa kunci yang ada, gunakan insert_or_assign().

#include <map> #include <iostream> using namespace std; int main() { map<int, int> m{{1,3},{2,4},{3,5}}; m.insert({5,6}); // adds new pair m.insert({1,8}); // ignored, key 1 already exists m.insert_or_assign(1,6); // updates key 1 to value 6 cout << "Key\tElement\n"; for (auto& p : m) { cout << p.first << '\t' << p.second << '\n'; } return 0; }

Output:

Menguasai std::map di C++: Panduan Komprehensif dengan Contoh Kode

Mencari dalam Peta

Menemukan kunci mudah dengan find(). Jika kunci ada, iterator yang dikembalikan menunjuk ke elemen; jika tidak, end() dikembalikan.

#include <iostream> #include <map> using namespace std; int main() { map<int, string> students; students.insert({200, "Alice"}); students.insert({201, "John"}); if (auto it = students.find(201); it != students.end()) { cout << "Key 201 has value: " << it->second << endl; } return 0; }

Output:

Menguasai std::map di C++: Panduan Komprehensif dengan Contoh Kode

Menghapus Data dari Peta

Elemen dapat dihapus berdasarkan kunci atau iterator. Metode erase() hanya menginvalidasi iterator yang menunjuk ke elemen yang dihapus.

#include <iostream> #include <map> using namespace std; int main() { map<string, int> myMap; myMap["cow"] = 1; myMap["cat"] = 2; myMap["lion"] = 3; if (auto it = myMap.find("cat"); it != myMap.end()) { myMap.erase(it); } for (auto& p : myMap) { cout << p.first << ": " << p.second << endl; } return 0; }

Output:

Menguasai std::map di C++: Panduan Komprehensif dengan Contoh Kode

Ringkasan

Bahasa C

  1. Menguasai Fungsi Perpustakaan Standar C: Panduan Praktis
  2. Operator C++ Dijelaskan: Tipe, Contoh, dan Program Contoh
  3. Perulangan do-while C++: Sintaks, Contoh Praktis, dan Perulangan Bersarang
  4. Menguasai Switch-Case C++: Sintaks, Penggunaan, dan Contoh Praktis
  5. Menguasai Alokasi Array Dinamis C++: Panduan Praktis dengan Contoh Kode
  6. Menguasai Pointer C++: Konsep, Contoh, dan Aplikasi Praktis
  7. Pengoverloadan Operator C++ – Panduan Praktis dengan Contoh Kode
  8. Menguasai std::list dalam C++: Sintaks, Fungsi & Contoh Praktis
  9. Fungsi C++ Dijelaskan dengan Contoh Kode Praktis
  10. Struktur vs Kelas C++: Perbedaan Utama, Sintaks, dan Kasus Penggunaan Terbaik