Map เป็นโครงสร้างข้อมูลที่จัดเก็บข้อมูลในรูปแบบคีย์-ค่า (key-value pairs) ใน C++ map ถูกกำหนดใน STL (Standard Template Library) และจัดเก็บคีย์ในรูปแบบที่เรียงลำดับแล้ว
Syntax การกำหนด map:
map<key_type, value_type> map_name;
ชนิดข้อมูลของคีย์หรือค่าใน map สามารถเป็นชนิดข้อมูล أيได้ ไม่ว่าจะเป็น primitive data types หรือ derived data types
เราสามารถใช้ชนิดข้อมูลใดๆ เป็นชนิดข้อมูลของคีย์ใน map แม้แต่ user-defined data type ก็สามารถใช้เป็นชนิดข้อมูลของคีย์ได้
ตอนนี้เราจะสร้างโครงสร้างข้อมูลที่กำหนดชนิดข้อมูลใหม่ และนำมาใช้เป็นคีย์สำหรับ map
Syntax
struct key {
float f;
}
การใช้ user-defined data type นี้ใน map ที่สร้างขึ้น ทำให้โปรแกรมเมอร์ได้ชุดข้อมูลที่ให้ข้อมูลมากขึ้นจาก map โครงสร้าง (struct) สามารถมีข้อมูลได้หลายตัว แม้แต่อาร์เรย์และโครงสร้างข้อมูลอื่นๆ ก็ถือว่าใช้ได้ในกรณีนี้
ตัวอย่าง
#include <bits/stdc++.h>
using namespace std;
struct kdata {
float id;
};
bool operator<(const kdata& t1, const kdata& t2) {
return (t1.id < t2.id);
}
int main() {
kdata t1 = {4.5}, t2 = {12.3}, t3 = {67.8}, t4 = {65.2};
map<kdata, char> maps;
maps[t1] = 'a';
maps[t2] = 'h';
maps[t3] = 'm';
maps[t4] = 'q';
cout << "The map data is ";
for (auto x : maps)
cout << x.first.id << " > " << x.second << endl;
return 0;
}
ผลลัพธ์
The map data is 4.5 > a 12.3 > h 67.8 > m 65.2 > q