Map là cấu trúc dữ liệu lưu thông tin dạng cặp khóa-giá trị. Trong C++, map định nghĩa trong STL (thư viện mẫu chuẩn) và lưu khóa theo thứ tự.
Cú pháp định nghĩa map –
map<key_type, value_type> map_name;
Kiểu dữ liệu của khóa hoặc giá trị có thể là bất kỳ kiểu nào: kiểu nguyên thủy hoặc kiểu dẫn xuất.
Ta có thể dùng kiểu do người dùng định nghĩa làm khóa của map.
Giờ ta sẽ tạo một cấu trúc dữ liệu định nghĩa kiểu mới và dùng nó làm khóa cho map.
Cú pháp
struct key {
float f;
} Sử dụng kiểu do người dùng định nghĩa trong map giúp lập trình viên có tập dữ liệu giàu thông tin hơn. Một struct có thể chứa bất kỳ số lượng dữ liệu nào, kể cả mảng và cấu trúc dữ liệu khác.
Ví dụ mã C++
#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 << "Dữ liệu map là ";
for (auto x : maps)
cout << x.first.id << " > " << x.second << endl;
return 0;
} Kết quả
Dữ liệu map là 4.5 > a 12.3 > h 67.8 > m 65.2 > q