Computer >> Máy Tính >  >> Lập trình >> C ++

ánh xạ hàm key_comp () trong C ++ STL

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

Bản đồ trong C ++ STL là gì?

Bản đồ là vùng chứa liên kết, tạo điều kiện để lưu trữ các phần tử được hình thành bởi sự kết hợp của giá trị khóa và giá trị được ánh xạ theo một thứ tự cụ thể. Trong vùng chứa bản đồ, dữ liệu luôn được sắp xếp nội bộ với sự trợ giúp của các khóa liên quan. Các giá trị trong vùng chứa bản đồ được truy cập bằng các khóa duy nhất của nó.

map ::key_comp () là gì?

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

Cú pháp

Key_compare.key_comp();

Tham số

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

Giá trị trả về

Nó trả về một đố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ụ

#include <bits/stdc++.h>
using namespace std;
int main() {
   map<int, char> TP;
   map<int, char>::key_compare cmp = TP.key_comp();
   // Inserting elements
   TP[0] = 'a';
   TP[1] = 'b';
   TP[2] = 'c';
   TP[3] = 'd';
   cout<<"Elements in the map are : \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;
}

Đầu ra

Elements in the map are:
0 : a
1 : b
2 : c
3 : d

Ví dụ

#include <bits/stdc++.h>
using namespace std;
int main() {
   map<char, int> TP;
   map<char, int>::key_compare cmp = TP.key_comp();
   // Inserting elements
   TP['a'] = 0;
   TP['b'] = 1;
   TP['c'] = 3;
   TP['d'] = 2;
   cout<<"Elements in the map are : \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;
}

Đầu ra

Elements in the map are:
a : 0
b : 1
c : 3
d : 2