Chuyển tới nội dung chính

std::multimap::key_comp

#include <map>

key_compare key_comp() const;

Trả về một bản sao của hàm so sánh (comparison object) được sử dụng bởi std::multimap để sắp xếp các key.

Tham số

Không có tham số

Giá trị trả về

  • key_compare: Trả về một bản sao của hàm so sánh (comparison object) đang được std::multimap sử dụng. key_compare là một kiểu (có thể là con trỏ hàm, functor, hoặc lambda) được định nghĩa bên trong std::multimap, cho phép so sánh hai key của std::multimap.

Đặc điểm

  1. Truy cập hàm so sánh: key_comp() cung cấp cách thức để lấy hàm so sánh đang được sử dụng bởi std::multimap.
  2. Bản sao: key_comp() trả về một bản sao của hàm so sánh, vì vậy bạn có thể sử dụng nó mà không ảnh hưởng đến std::multimap.
  3. const: key_comp() là một hàm const, nghĩa là nó không thay đổi trạng thái của std::multimap.
  4. Không ném ngoại lệ: Hàm key_comp() được quy định không ném ra ngoại lệ.
  5. Phụ thuộc vào cách khởi tạo: Hàm so sánh trả về bởi key_comp() phụ thuộc vào cách bạn khởi tạo std::multimap. Nếu bạn không chỉ định hàm so sánh khi khởi tạo, std::multimap sẽ sử dụng std::less theo mặc định.
  6. Độ phức tạp: O(1) - thời gian hằng số.

Ví dụ

#include <iostream>
#include <map>
#include <functional>

int main() {
std::multimap<int, std::string> mymultimap;

// Lấy hàm so sánh mặc định (std::less)
std::multimap<int, std::string>::key_compare comp = mymultimap.key_comp();

// So sánh hai key sử dụng hàm so sánh lấy được từ multimap
if (comp(5, 10)) {
std::cout << "5 is less than 10\n"; // Output: 5 is less than 10
}

// Sử dụng std::multimap với hàm so sánh tùy chỉnh (std::greater)
std::multimap<int, std::string, std::greater<int>> mymultimap2;
std::multimap<int, std::string, std::greater<int>>::key_compare comp2 = mymultimap2.key_comp();

if (comp2(5, 10)) {
std::cout << "5 is greater than 10\n"; // Output: 5 is greater than 10
}

return 0;
}

Các hàm liên quan

value_compTrả về một hàm so sánh dùng để so sánh các value_type trong std::multimap
findTìm kiếm một phần tử có key bằng với giá trị key cho trước trong std::multimap
countĐếm số lượng phần tử có key bằng với giá trị key cho trước trong std::multimap
lower_boundTrả về một iterator trỏ đến phần tử đầu tiên trong std::multimap có key lớn hơn hoặc bằng giá trị key cho trước
upper_boundTrả về một iterator trỏ đến phần tử đầu tiên trong std::multimap có key lớn hơn giá trị key cho trước