Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Hàm map::key_comp() trong C++ STL


Trong bài viết này, chúng ta sẽ thảo luận về cách hoạt động, cú pháp và ví dụ của hàm map::key_comp() trong C++ STL.

Map trong C++ STL là gì?

Map là container liên hợp, cho phép lưu trữ các phần tử được hình thành từ tổ hợp khóa (key) và giá trị ánh xạ (mapped value) theo một thứ tự xác định. Trong container map, dữ liệu luôn được sắp xếp nội bộ nhờ các khóa liên kết. Các giá trị trong map được truy xuất bằng khóa duy nhất của chúng.

map::key_comp() là gì?

map::key_comp() là hàm nằm trong header . Hàm này trả về bản sao của đối tượng so sánh khóa. Mặc định đây là đối tượng less-than, hoạt động giống như toán tử nhỏ hơn <. Đối tượng này kiểm tra thứ tự của các khóa phần tử trong container map. Hàm nhận hai đối số, kiểm tra khóa của chúng và trả về true nếu phần tử đầu tiên nhỏ hơn và nên đi trước phần tử thứ hai, ngược lại trả về false.

Cú pháp

Key_compare.key_comp();

Tham số

Hàm không chấp nhận tham số nào.

Giá trị trả về

Trả về đối tượng so sánh.

Ví dụ

Đầu vào

map<char, int> newmap; map<char, int>::key_compare cmp = newmap.key_comp(); newmap['a'] = 1; newmap['b'] = 2; newmap['c'] = 3;

Đầu ra

a = 1 b = 2 c = 3

Ví dụ hoàn chỉnh

#include <bits/stdc++.h> using namespace std; int main() {    map<int, char> TP;    map<int, char>::key_compare cmp = TP.key_comp();    // Chèn phần tử    TP[0] = 'a';    TP[1] = 'b';    TP[2] = 'c';    TP[3] = 'd';    cout<<"Các phần tử trong map là: \n";    int val = TP.rbegin()->first;    map<int, char>::iterator i = TP.begin();    do {       cout << i->first << " : " << i->second<<'\n';    } while (cmp((*i++).first, val));    return 0; }

Kết quả

Các phần tử trong map là: 0 : a 1 : b 2 : c 3 : d

Ví dụ khác

#include <bits/stdc++.h> using namespace std; int main() {    map<char, int> TP;    map<char, int>::key_compare cmp = TP.key_comp();    // Chèn phần tử    TP['a'] = 0;    TP['b'] = 1;    TP['c'] = 3;    TP['d'] = 2;    cout<<"Các phần tử trong map là: \n";    char val = TP.rbegin()->first;    map<char, int>::iterator i = TP.begin();    do {       cout << i->first << " : " << i->second<<'\n';    } while (cmp((*i++).first, val));    return 0; }

Kết quả

Các phần tử trong map là: a : 0 b : 1 c : 3 d : 2