Computer >> Hướng Dẫn 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 hoạt động, cú pháp và các ví dụ của hàm multimap::value_comp() trong C++ STL.

Multimap trong C++ STL là gì?

Multimap là container liên kết, tương tự như map. Nó lưu trữ các phần tử dạng cặp key-value theo thứ tự cụ thể. Multimap cho phép nhiều phần tử có cùng một key. Dữ liệu luôn được sắp xếp theo key.

Hàm multimap::value_comp() là gì?

multimap::value_comp() là hàm built-in trong C++ STL, được khai báo trong header <map>. Hàm này trả về một bản sao của đối tượng so sánh (comparison object) được multimap sử dụng để so sánh các phần tử. Mặc định đối tượng này là less-than operator, hoạt động giống toán tử nhỏ hơn.

Đây là loại con trỏ hàm hoặc function object so sánh hai giá trị cùng kiểu trong multimap, trả về true nếu phần tử đầu tiên nhỏ hơn phần tử thứ hai, ngược lại trả về false.

Cú pháp

multi_name.value_comp();

Tham số

Hàm này không nhận tham số nào.

Giá trị trả về

Trả về đối tượng so sánh của multimap liên kết.

Ví dụ minh họa

#include <iostream>
#include <map>
using namespace std;

int main() {
    multimap<int, char> mul;
    
    // Chèn các phần tử
    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 << "Các phần tử tại key tương ứng: " << '\n';
    do {
        cout << (*it).first << " = " << (*it).second << '\n';
    } while (mul.value_comp()(*it++, temp));
    
    return 0;
}

Kết quả

Các phần tử tại key tương ứng:
0 = A
1 = B
2 = C
3 = D