Nie rozumiem dobrze algorytmu std::is_sorted
i jego domyślnego zachowania. Jeśli spojrzymy na cppreference, to domyślnie std::is_sorted
używa operatora <
. Zamiast tego stwierdzam, że używanie <=
byłoby naturalne. Ale moim problemem jest to, że na poniższej liście numerów:std :: is_sorted i ściśle mniej porównania?
1 2 3 3 4 5
powróci true
, nawet jeśli 3 < 3
powinny być false
. Jak to możliwe ?
EDYCJA: jego wydaje się być gorszy niż to, co myślałem, ponieważ przekazanie std::less_equal<int>
zwróci false w takim przypadku ... Jaki jest stan, gdy przekazuję funkcję komparatora?
[Effective STL] (http: //www.amazon.com/Effective-STL-Specific-Standard-Template/dp/0201749629) autorstwa Scotta Meyersa, pozycja 19: "Rozumiem różnicę między równoważnością a równością" – TemplateRex