Dennis1990 Ответов: 2

Как отсортировать вектор структурированных данных с помощью сортировщика другого вектора


Привет,
к сожалению, я сижу над этой проблемой уже 4 часа, и это сводит меня с ума:

я получил 2 вектора в качестве члена своего класса.
первый вектор содержит структуры < с именем cstring, типом перечисления и коэффициентом преобразования float>
а вектор с сортировочной информацией заполняется перечислениями для "Name "(0),"Kind "(1) и"transformation-factor" (2).
Положение перечисления в векторе говорит нам о порядке сортировки.
Моя цель-отобразить первые векторные данные в таблице данных, отсортированной по порядку пользователей.

Теперь у меня есть проблемы с написанием рабочего функтора,который должен сказать std:: sort, как сортировать.

Что я уже пробовал:

Функции сортировки должны получить параметры и остановить сортировку, как только появится первая совпадающая пара, которая не является l. = = r.,
прямо сейчас я даже не могу получить структуру для функтора в заголовке .,
кроме того, у меня есть проблемы с вызов функций в файле. cpp, потому что каждый шаг зависит от сортировочного вектора.
Кто может мне помочь и привести пример?

0x01AA

Как насчет того, чтобы оставить ваши исходные данные такими, какие они есть, и ввести третий вектор, управляющий "только" индексами сортировки?

Sergey Alexandrovich Kryukov

Непонятный. То, чего вы хотите достичь, нельзя назвать "сортировкой", это должно прекратиться до конца сортировки. Независимо от того, что это такое, вы должны строго сформулировать его. "l. == r." не ясно; вы никогда не вводили l или r, и это не код C++.
Вероятно, вам нужно предоставить код, в котором вы определяете векторы и типы элементов и четко формулируете проблему.
Смотреть также:
Что вы пробовали так далеко?
—СА

Patrice T

Покажите образец ваших данных, описывающих ситуацию.

2 Ответов

Рейтинг:
14

KarstenK

Чтобы добиться своего собственного порядка сортировки, вы должны перезаписать алгоритм сортировки, перезаписав оператор сравнения " <", который повторно вызывается при вызове сортировки.

Для более глубокого проникновения внутрь прочтите и поймите великую статью Функция сравнения сортировки STL.

Совет: составьте небольшой примерный список и отладьте его, чтобы понять, что происходит.


Dennis1990

спасибо тебе, Карстенк! ваша замечательная статья попала в список литературы моей диссертации.
мне это очень помогло :)

Рейтинг:
10

Dennis1990

спасибо вам за помощь.
я использовал функцию сравнения сортировки STL и мог использовать
Член & lt; оператор
как это было описано в статье

спасибо Вам за вашу помощь,
в следующий раз я использую функтор :)


0x01AA

Я не вижу причин голосовать за 1 Отзыв. За исключением того, что обратная связь на самом деле не является описательной. Но для этого гораздо эффективнее было бы написать комментарий. Я позволяю 5 здесь для более или менее "нового" члена.