Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2009, 15:23   #1
TOLIK111
Новичок
Джуниор
 
Регистрация: 06.12.2009
Сообщений: 1
По умолчанию Вопрос насчет функции sort

Здравствуйте, я новичок в C++, хочу разобраться в функции сортировки sort в С++
Нашел материал в интернете, что если мне нужно отсортировать массив по возрастанию, мне нужно писать так sort(a, a+n);
a - имя массива, n-количество элементов
Потом я долго разбирался, как сделать, если мне нужно отсортировать не весь массив, а только часть, ну кое-как вроде понял
К примеру если мне нужно отсортировать элементы со второго до предпоследнего, нужно написать так: sort(a+1, a+n-1);
Теперь у меня вопрос: как отсортировать элементы массива не по возрастанию, а по убыванию?
Вот прочитал в википедии:
The sort function is included from the algorithm header of the C++ Standard Library, and carries three arguments: RandomAccessIterator first, RandomAccessIterator last, Compare comp. The third argument has default value - the "less-than" (<) operator to compare elements.
Как я понял, чтобы отсортировать массив по убыванию. нужно что-то сделать с этим Compare comp?
Как будет выглядеть операция для сортировки по убыванию?
TOLIK111 вне форума Ответить с цитированием
Старый 06.12.2009, 15:57   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Третьим параметром идёт указатель на функцию, которая принимает два параметра того же типа, что и элементы массива и возвращает значение типа bool.
Код:
bool comp(const int a, const int b)
{
    return a > b;
}
// Или объектом-функцией:
class Comp {
public:
   bool operator() (const int a, const int b) {
       return a > b;
   }
};
// использовать:
int a[10];
...
std::sort(a, a + 10, comp);
std::sort(a, a + 10, Comp());
}
netrino вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
трассировка алгоритма Quick Sort bfm89 Помощь студентам 6 27.11.2009 14:38
C++: Портотип функции sort Crazy_caramel Помощь студентам 4 26.11.2009 23:17
Важный вопрос насчет окон Windows HWork Общие вопросы C/C++ 15 15.09.2009 10:00
(STL LIST SORT) Сортировка по некольким критериям htatsu Общие вопросы C/C++ 4 19.07.2009 01:44
Вопрос насчет курсоров и печати изображения Romich Общие вопросы Delphi 10 11.06.2009 02:05