Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
#include <algorithm>
#include <iostream>
#include <vector>
int main() {
std::vector<int> v{2, 3, 1, 3};
std::sort(v.begin(), v.end(), [](int a, int b) { return a > b; });
for (int x : v) {
std::cout << x << ' ';
}
}3 3 2 1
- Ждать
1 2 3 3: компаратор возвращаетtrue, когдаaдолжен стоять раньшеb, поэтомуa > bставит большие числа вперёд. - Ждать
3 2 1:std::sortтолько переставляет элементы и оставляет обе3; повторы исчезают вstd::set, а не при сортировке.
- Почему в этом компараторе нужен
>, а не>=? - Как отсортировать
vпо убыванию, не записывая лямбду?