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::key_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::key_comp() là gì?
multimap::key_comp() là hàm nằm trong header <map>. Hàm này trả về một bản sao của đối tượng so sánh key (key comparison object). Mặc định là đối tượng less-than (nhỏ hơn), hoạt động giống toán tử <. Đối tượng này kiểm tra thứ tự các key trong multimap. Nó nhận hai đối số, so sánh key của chúng và trả về true nếu phần tử đầu tiên nhỏ hơn và nên đứng 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 này không nhận tham số nào.
Giá trị trả về
Trả về đối tượng so sánh (comparison object).
Ví dụ minh họa
#include <iostream>
#include <map>
using namespace std;
int main() {
multimap<int, char> mul;
multimap<int, char>::key_compare cmp = mul.key_comp();
// 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'));
int a = mul.rbegin()->first;
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 (cmp((*it++).first, a));
return 0;
}
Kết quả
Các phần tử tại key tương ứng:
0 = A
1 = B
2 = C
3 = D