Tôi không hiểu rõ thuật toán std::is_sorted
và hành vi mặc định của nó. Nếu chúng tôi xem xét cppreference, theo mặc định, std::is_sorted
sử dụng toán tử <
. Thay vào đó, tôi thấy rằng việc sử dụng <=
sẽ là tự nhiên. Nhưng vấn đề của tôi là đối với danh sách sau đây các con số:std :: is_sorted và so sánh hoàn toàn ít hơn?
1 2 3 3 4 5
nó sẽ trở lại true
, ngay cả khi 3 < 3
nên false
. Làm thế nào là có thể?
CHỈNH SỬA: nó dường như tồi tệ hơn những gì tôi nghĩ, bởi vì vượt qua std::less_equal<int>
sẽ trả về false trong trường hợp đó ... Điều kiện được áp dụng khi tôi vượt qua một hàm so sánh là gì?
[Hiệu quả STL] (http: //www.amazon.com/Hiệu quả-STL-Cụ thể-Tiêu chuẩn-Template/dp/0201749629) bởi Scott Meyers, khoản 19: "Hiểu sự khác biệt giữa tương đương và bình đẳng" – TemplateRex