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

std::multiset::value_comp

#include <set>

value_compare value_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 để so sánh các phần tử (value).

Tham số

Không có tham số

Giá trị trả về

  • value_compare: Trả về một bản sao của hàm so sánh (comparison object) đang được std::multiset sử dụng để so sánh giá trị các phần tử. value_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ử (value) của std::multiset.

Đặc điểm

  1. Truy cập hàm so sánh: value_comp() cung cấp cách thức để lấy hàm so sánh đang được sử dụng bởi std::multiset.
  2. Bản sao: value_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.
  3. const: value_comp() là một hàm const, nghĩa là nó không thay đổi trạng thái của std::multiset.
  4. Không ném ngoại lệ: Hàm value_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 value_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.
  6. Giống key_comp(): Trong std::multiset, value_comp()key_comp() trả về cùng một loại hàm so sánh vì key_typevalue_type là giống nhau.
  7. Độ 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>::value_compare comp = myset.value_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>>::value_compare comp2 = myset2.value_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

key_compTrả về một bản sao của hàm so sánh được sử dụng bởi std::multiset để sắp xếp các phần tử
findTì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_boundTrả 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_boundTrả 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