struct drzewo {
int id, a;
drzewo (int _id = 0, int _a = 0) : id(_id), a(_a) {}
int operator<(const drzewo &t) const {
return a < t.a;
}
};
1
4
- konstruktor
- operator dla porównania drzewo < drzewo ( w tym przypadku sprawdza zmienną "a")
4
Definiuje operator<
, pozwalając porównywać dwa obiekty klasy drzewo
:
drzewo pierwsze{0, 4};
drzewo drugie{1, 2};
assert(drugie < pierwsze);
Nie jest to w pełni prawidłowy operator<
— powinien być zdefiniowany jako inline bool operator<
. Lektura polecana: https://en.cppreference.com/w/cpp/language/operators
Nawiasem mówiąc, C++20 dodaje jednorodne porównanie przez operator<=>
: https://en.cppreference.com/w/cpp/language/default_comparisons
EDYCJA:
Liczyłem linijki od zera (więc trzecia i czwarta linijka to była dla mnie tylko definicja operator<
). W trzeciej linijce jest konstruktor korzystający z listy inicjalizacyjnej. Polecana lektura: https://en.cppreference.com/w/cpp/language/constructor