![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
Andrewshkovskii |
![]() ![]()
Сообщение
#1
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 222 Пол: Мужской Реальное имя: Andrew Репутация: ![]() ![]() ![]() |
Вот моя идея :
Есть какой-то массив объектов одного класса. Прим. класса : class employee { Массив фактически является таблицей штата сотрудников.Предположим,что нам надо отсортировать сначало по фамилии,далее по возрасту,потом,сохраняя порядок по фамилии и возрасту, по зарплате.НО,допустим,пользователь хочет отсортировать таблицу по Фамилии , зарплате и стажу(именно в таком порядке),или же, по зарплате и возрасту,но не по фамилии. Т.е Возможных вариантов будет "полная сортировка" 1 1 1 сортировка по 2м параметрам 1 1 0 0 1 1 1 0 1 сортировка по 1му параметру 1 0 0 0 0 1 0 1 0 всего у нас (2^n )-1) возможных сортировок. (где 1 и 0 - битовые флаги,означающие сортировку по какому-то выбранному параметру). Вопрос в следующем,есть ли у кого-то примеры таких алгоритмов или же,какие-нибудь идеи по алгоритму?Я пока читаю вот это - http://sources.ru/magazine/0906/03.html . но не особо понимаю. |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Я не понял, чем тебя не устраивает, скажем, стандартный std::sort с твоим предикатом сравнения? Просто пишешь функцию, как сравнивать 2 элемента таблицы между собой, и передаешь эту функцию в sort() третьим параметром. Все, больше ничего не надо...
Скажем, чтобы отсортировать Цитата по зарплате и возрасту,но не по фамилии , достаточно:bool PartialOne(const employee& first, const employee& second) { |
Andrewshkovskii |
![]()
Сообщение
#3
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 222 Пол: Мужской Реальное имя: Andrew Репутация: ![]() ![]() ![]() |
хм..не совсем понятно мне,как же быть тогда с массивом объектов?или std::sort() использовать в цикле?..
also, прощу прощения за глупый вопрос.и ещё,в примере ошибка? sort(vec.begin(), vec.end(), PartialOne); PartialOne используется без параметров?.. Сообщение отредактировано: Andrewshkovskii - 24.05.2008 18:36 |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Цитата PartialOne используется без параметров?.. Параметры подставит сам std::sort()... Вот тебе иллюстрация, как это работает:#include <iostream> |
![]() ![]() |
![]() |
Текстовая версия | 20.06.2025 7:33 |