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

hàm multimap 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à ví dụ của hàmmultimap ::value_comp () trong C ++ STL.

Multimap trong C ++ STL là gì?

Multimaps là các vùng chứa kết hợp, tương tự như vùng chứa bản đồ. Nó cũng 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 khóa-giá trị và giá trị được ánh xạ theo một thứ tự cụ thể. Trong một vùng chứa nhiều bản đồ có thể có nhiều phần tử được liên kết với cùng một khóa. 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.

Multimap ::value_comp () là gì?

multimap ::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 multimapcontainer để 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ư đối tượng nhỏ hơn.

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 multimap 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

multi_name.value_comp();

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 nhiều bản đồ được liên kết.

Đầu vào

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

Đầu ra

1
2
3

Ví dụ

#include <iostream>
#include <map>
using namespace std;
int main(){
   multimap<int, char> mul;
   //inserting elements at given key
   mul.insert(make_pair(0, 'A'));
   mul.insert(make_pair(1, 'B'));
   mul.insert(make_pair(2, 'C'));
   mul.insert(make_pair(3, 'D'));
   pair<int, char> temp = *mul.rbegin();
   multimap<int, char>::iterator it = mul.begin();
   cout<<"Elements at given key is : "<<'\n';
   do {
      cout << (*it).first << " = " << (*it).second << '\n';
   }
   while (mul.value_comp()(*it++, temp));
      return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

Elements at given key is :
0 = A
1 = B
2 = C
3 = D