std::set
- это контейнер, содержащий упорядоченный набор объектов.
Порядок расположения объектов определяется вторым аргументом.По умолчанию это std::less<Key>
.См. определение std :: set для получения дополнительной информации.Однако вы можете переопределить аргумент по умолчанию, используя свой собственный тип Compare
в качестве второго аргумента, как вы это сделали в своем опубликованном коде.
Например:
std::set<int> set1; // Use default compare class, std::less<int>
set1.insert(10);
set1.insert(5);
set1.insert(7);
Порядокобъектов в указанном выше контейнере будет 5, 7 и 10. Объекты в контейнере сортируются по возрастанию.
Если вы используете
std::set<int, std::greater<int>> set2;
set2.insert(10);
set2.insert(5);
set2.insert(7);
Порядок объектов внад контейнером будет 10, 7 и 5. Объекты в контейнере отсортированы по убыванию.