Sign in
or
Register
Courses
Textbook
Compiler
Contests
Topics
Computer Science. Textbook
C++. Dinamik Veri Yapıları
Karşılaştırıcı ile sıralama
Karşılaştırıcı ile sırala
Bir vektör (dizi gibi)
sort()
işlevi kullanılarak sıralanabilir. Ancak bu işlev, varsayılan olarak artan düzende sıralar. Bir diziyi farklı bir düzende sıralamak için, iki nesneyi karşılaştırarak sıralama düzenini belirleyen
karşılaştırıcı
adlı işlevi kullanmanız gerekir. .
Örnek
Bir dizinin öğelerini artan düzende sıralayan bir karşılaştırıcı örneği.
bool cmp(önce int, ikinci int) { önce dön
ve oluşturulan karşılaştırıcıyı kullanarak
A
vektörünü sıralamak:
sort(A.begin(), A.end(), cmp);
Yineleyicileri düşünün
Problemin durumuna göre
stable
(stable) sıralama yapılması gerektiği açıktır, bu nedenle sort yerine stable_sort kullanılmalıdır.
Ayrıca sıralama işlevini çağırmadan önce oluşturabileceğiniz bir karşılaştırıcı olarak bir işlev nesnesi belirtebilirsiniz.
Örneğin:
yapı
{
bool
operatör
()(
int
a,
int
b)
const
{ bir
<
b'yi
döndür
} }cmp;