@Rastr_0

Как написать компаратор для std::find?

Добрый вечер. Я почитал вот тут(https://en.cppreference.com/w/cpp/algorithm/sort), как написать компаратор для std::find, но ловлю 3 ошибки. Отсортировать нужно объекты вот такого вида: std::pair<std::string, unsigned int>.
Что не так?
std::sort(std::begin(not_sorted_result), std::end(not_sorted_result), [](const std::pair<std::string, unsigned int >& first, const std::pair<std::string, unsigned int >& second) {
			// if size bigger or less sort by length
			if (first.first.size() > second.first.size())
				return true;
			// if size is the same sort by alphabet
			else if (first.first.size() == second.first.size())
				if (first.first[0] > second.first[0])
					return true;
				else
					return false;
			else
				return false;
			});
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
Если вас устроит тот факт, при точном совпадении строк произойдет сортировка по числам - ва ничего писать не надо, у std::pair есть стандартный компаратор, который работает лексикографически.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы