01კომპარატორი თავად არის რიგი
std::sort(v.begin(), v.end(), comp) უშვებს O(n log n) ალგორითმს (introsort) და შენს მონაცემზე ერთადერთი, რაც იცის, შენი ფუნქცია comp(a, b)-ა, რომელიც პასუხობს: a უნდა იყოს b-ზე წინ?
ესე იგი ნებისმიერი წესით შეგიძლია დაალაგო:
- კლებადობით:
return a > b; - ველით:
return a.score > b.score; - რამდენიმე გასაღებით: შეადარე პირველი გასაღები; მხოლოდ ტოლობისას შეადარე შემდეგი
სხვა ენებში სხვანაირად გამოიყურება, მაგრამ ასევე მუშაობს: Python sorted(v, key=lambda p: (-p.score, p.name)), Java Comparator.comparing(...). გასაღების ფუნქცია, რომელიც კორტეჟს აბრუნებს, ხშირად ყველაზე მარტივი გზაა მრავალგასაღებიანი რიგის სწორად მისაღებად.