std::unordered_multiset::key_eq
#include <unordered_set>
key_equal key_eq() const;
Trả về một bản sao của hàm so sánh bằng (equality comparison function object) được sử dụng bởi std::unordered_multiset để kiểm tra xem hai key có bằng nhau hay không.
Tham số
Không có tham số
Giá trị trả về
key_equal
- Trả về một bản sao của hàm so sánh bằng (equality comparison function object) đang được std::unordered_multiset sử dụng.
key_equal
là một kiểu (thường là functor) được định nghĩa bên trong std::unordered_multiset, cho phép so sánh hai key có bằng nhau hay không.
Đặc điểm
- Truy cập hàm so sánh bằng:
key_eq()
cung cấp cách thức để lấy hàm so sánh bằng đang được sử dụng bởi std::unordered_multiset. - Bản sao:
key_eq()
trả về một bản sao của hàm so sánh bằng, vì vậy bạn có thể sử dụng nó mà không ảnh hưởng đến std::unordered_multiset. - const:
key_eq()
là một hàmconst
, nghĩa là nó không thay đổi trạng thái của std::unordered_multiset. - Không ném ngoại lệ: Hàm
key_eq()
đượ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 bằng trả về bởi
key_eq()
phụ thuộc vào cách bạn khởi tạo std::unordered_multiset. Nếu bạn không chỉ định hàm so sánh bằng khi khởi tạo, std::unordered_multiset sẽ sử dụng std::equal_to theo mặc định. - Kết hợp với hàm băm: std::unordered_multiset sử dụng cả hàm băm và hàm so sánh bằng để quản lý các phần tử.
key_eq()
cung cấp hàm so sánh bằng, cònhash_function()
cung cấp hàm băm. - Ít khi được sử dụng trực tiếp: Trong hầu hết các trường hợp, bạn không cần phải sử dụng
key_eq()
trực tiếp. std::unordered_multiset tự động sử dụng hàm so sánh bằng khi cần thiết (ví dụ: khi chèn hoặc tìm kiếm phần tử). - Độ phức tạp:
O(1)
- thời gian hằng số.
Ví dụ
#include <iostream>
#include <unordered_set>
#include <string>
int main() {
std::unordered_multiset<std::string> myumset;
// Lấy hàm so sánh bằng
std::unordered_multiset<std::string>::key_equal eq = myumset.key_eq();
// Kiểm tra xem hai chuỗi có bằng nhau theo tiêu chí của unordered_multiset hay không
if (eq("apple", "apple")) {
std::cout << "'apple' is equal to 'apple'\n"; // Output: 'apple' is equal to 'apple'
}
if (!eq("apple", "banana")) {
std::cout << "'apple' is not equal to 'banana'\n"; // Output: 'apple' is not equal to 'banana'
}
return 0;
}
Các hàm liên quan
hash_function | Trả về một bản sao của hàm băm đang được sử dụng bởi std::unordered_multiset |
get_allocator | Trả về một bản sao của bộ cấp phát (allocator) được liên kết với std::unordered_multiset |