Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

สำรวจแผนที่ (หรือ unordered_map) ใน C++ STL


ที่นี่เราจะเห็นคอนเทนเนอร์แผนที่และการใช้งานในภาษา C++ แผนที่ถูกกำหนดให้เป็นคอนเทนเนอร์ที่เชื่อมโยงที่เก็บองค์ประกอบในรูปแบบแฮชแมป แต่ละองค์ประกอบเชื่อมโยงกับคีย์และค่า ไม่มีค่าที่แมปสองค่าใดที่สามารถมีคีย์ที่เหมือนกันได้ นี่คือวิธีการพื้นฐานบางอย่างที่มีอยู่ในคอนเทนเนอร์แผนที่ใน C++

Begin():ส่งคืนตัววนซ้ำไปยังองค์ประกอบแรกในแผนที่

จบ() − สิ่งนี้จะส่งคืนตัววนซ้ำไปยังองค์ประกอบทางทฤษฎีที่ตามหลังองค์ประกอบสุดท้ายในแผนที่

ขนาด() - ส่งกลับจำนวนองค์ประกอบในแผนที่

max_size() - ส่งกลับจำนวนองค์ประกอบสูงสุดที่แผนที่สามารถถือได้

ว่างเปล่า() - ส่งกลับว่าแผนที่ว่างเปล่าหรือไม่

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

#include <bits/stdc++.h>
using namespace std;
int main() {
   int A[] = { 2, 2, 3, 2, 2, 4, 5, 4 };
   int num = sizeof(A) / sizeof(A[0]);
   map<int, int> my_map;
   for (int p = 0; p < num; p++)
      my_map[A[p]]++;
   cout <<"Item Frequency"<< endl;
   for (auto p : my_map)
      cout << p.first <<" : "<< p.second << endl;
}

ผลลัพธ์

Item Frequency
2 : 4
3 : 1
4 : 2
5 : 1

แผนที่ unordered_map เป็นคอนเทนเนอร์แผนที่อีกประเภทหนึ่งใน C ++ STL นี่คือคอนเทนเนอร์ที่เกี่ยวข้องซึ่งรวบรวมหรือจัดเก็บองค์ประกอบที่เกิดจากการรวมกันของคู่ค่าคีย์ คีย์นี้ใช้เพื่อระบุค่าโดยไม่ซ้ำกัน ในกรณีนี้ ทั้งคีย์และค่าอาจเป็นประเภทที่กำหนดไว้ล่วงหน้าหรือกำหนดโดยผู้ใช้ก็ได้

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

#include <bits/stdc++.h>
using namespace std;
int main() {
   int A[] = { 2, 2, 3, 2, 2, 4, 5, 4 };
   int num = sizeof(A) / sizeof(A[0]);
   unordered_map<int, int> my_map;
   for (int p = 0; p < num; p++)
      my_map[A[p]]++;
   cout <<Item Frequency"<< endl;
   for (auto p : my_map)
      cout << p.first <<" : "<< p.second << endl;
}

ผลลัพธ์

Item Frequency
5 : 1
4 : 2
2 : 4
3 : 1