Non capisco bene l'algoritmo std::is_sorted
e il suo comportamento predefinito. Se guardiamo a cppreference, si dice che per impostazione predefinita std::is_sorted
utilizza l'operatore <
. Invece di quello, trovo che usare <=
sia naturale. Ma il mio problema è che per il seguente elenco di numeri:std :: is_sorted e strettamente meno confronto?
1 2 3 3 4 5
si tornerà true
, anche se dovrebbe essere 3 < 3
false
. Come è possibile ?
EDIT: sembra essere peggio di quello che pensavo, perché passare std::less_equal<int>
restituirà false in tal caso ... Qual è la condizione applicata quando passo una funzione comparatore?
[STL effettivo] (http: //www.amazon.com/Effective-STL-Specific-Standard-Template/dp/0201749629) di Scott Meyers, Articolo 19: "Comprendi la differenza tra equivalenza ed uguaglianza" – TemplateRex