std::multiset::emplace_hint
#include <set>
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::multiset để sắp xếp các phần tử (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::multiset 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::multiset, cho phép so sánh hai phần tử (key) của std::multiset.
Đặc điểm
- 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::multiset. - 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::multiset. - const:
key_comp()
là một hàmconst
, nghĩa là nó không thay đổi trạng thái của std::multiset. - Không ném ngoại lệ: Hàm
key_comp()
được quy định không ném ra ngoại lệ. - 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::multiset. Nếu bạn không chỉ định hàm so sánh khi khởi tạo, std::multiset sẽ sử dụng std::less theo mặc định. - Độ phức tạp:
O(1)
- thời gian hằng số.
Ví dụ
#include <iostream>
#include <set>
#include <functional>
int main() {
std::multiset<int> myset;
// Lấy hàm so sánh mặc định (std::less)
std::multiset<int>::key_compare comp = myset.key_comp();
// So sánh hai số nguyên sử dụng hàm so sánh lấy được từ multiset
if (comp(5, 10)) {
std::cout << "5 is less than 10\n"; // Output: 5 is less than 10
}
// Sử dụng std::multiset với hàm so sánh tùy chỉnh (std::greater)
std::multiset<int, std::greater<int>> myset2;
std::multiset<int, std::greater<int>>::key_compare comp2 = myset2.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_comp | Trả về một bản sao của hàm so sánh được sử dụng bởi std::multiset để so sánh các phần tử |
find | Tìm kiếm một phần tử có giá trị bằng với giá trị cho trước trong std::multiset |
count | Đếm số lượng phần tử có giá trị bằng với giá trị cho trước trong std::multiset |
lower_bound | Trả về một iterator trỏ đến phần tử đầu tiên trong std::multiset có giá trị lớn hơn hoặc bằng giá trị key cho trước |
upper_bound | Trả về một iterator trỏ đến phần tử đầu tiên trong std::multiset có giá trị lớn hơn giá trị key cho trước |