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

map value_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à các ví dụ của hàm map ::value_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 ::value_comp () là gì?

map ::value_comp () là một hàm có sẵn trong C ++ STL được khai báo trong tệp tiêu đề . value_comp () trả về một bản sao của đối tượng so sánh, được sử dụng bởi vùng chứa bản đồ để so sánh. Theo mặc định, đối tượng này nhỏ hơn đối tượng của toán tử, hoạt động tương tự như toán tử less than.

Nó là một loại con trỏ hàm hoặc một đối tượng hàm thực hiện việc so sánh hai giá trị của cùng một kiểu trong một tập hợp cụ thể và trả về true nếu phần tử đầu tiên nhỏ hơn phần tử thứ hai trong vùng chứa, nếu không thì trả về false.

Cú pháp

Map_name.value_comp(key& k);

Tham số

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

Giá trị trả về

Hàm này trả về một đối tượng so sánh của vùng chứa tập hợp được liên kết.

Ví dụ

Đầu vào

map<char, int> newmap;
newmap[‘a’] = 1;
newmap[‘b’] = 2;
newmap[‘c’] = 3;
set<int>::value_compare cmp = myset.value_comp()

Đầu ra

1
2
3

Ví dụ

#include <iostream>
#include <map>
using namespace std;
int main() {
   map<char, int> TP = {
      { 'a', 10 },
      { 'b', 20 },
      { 'c', 30 },
      { 'd', 40 },
      { 'e', 50 },
   };
   auto temp = *TP.rbegin();
   auto i = TP.begin();
   cout <<"Elements in map are : \n";
   do {
      cout<< i->first << " = " << i->second<< endl;
   } while (TP.value_comp()(*i++, temp));
   return 0;
}

Đầu ra

Elements in map are :
a = 10
b = 20
c = 30
d = 40
e = 50