Форум программистов, компьютерный форум CyberForum.ru

Использование функции sort - C++

Восстановить пароль Регистрация
 
vbloodv
 Аватар для vbloodv
22 / 22 / 0
Регистрация: 15.12.2012
Сообщений: 314
03.03.2013, 14:10     Использование функции sort #1
Часто видел как в алгоритме std::sort(v.begin(),v.end(),Less); // импользуют самонаписанную функцию Less разве нет для этой функции аналога в STL своеобразный аналог min,max только возвращающие bool'ean значение ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
03.03.2013, 14:25     Использование функции sort #2
Ну так std::less и другие аналоги.
vbloodv
 Аватар для vbloodv
22 / 22 / 0
Регистрация: 15.12.2012
Сообщений: 314
03.03.2013, 14:27  [ТС]     Использование функции sort #3
Цитата Сообщение от yuron_477 Посмотреть сообщение
Ну так std::less и другие аналоги.
Уже что-то не могли бы вы привести пример на псевдокоде ибо
C++
1
std::sort(v.begin(),v.end(),std::less);
не получается применить
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
03.03.2013, 14:39     Использование функции sort #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <iomanip>
#include <vector>
#include <algorithm>
#include <functional>
 
template<typename T>
void print(const T& ar)
{
    for (auto& x : ar) std::cout<<std::setw(3)<<x<<" ";
    std::cout<<"\n";
}
 
int main()
{
    std::vector<int> ar = {1,-9,3,-7,4,6,7,-4,2,0};
    std::sort(ar.begin(), ar.end(), std::less<int>());    //std::less<int>() в sort по умолчанию
    print(ar);
    std::sort(ar.begin(), ar.end(), std::greater<int>());
    print(ar);
    ar.erase(std::remove_if(ar.begin(), ar.end(), std::bind(std::greater<int>(), std::placeholders::_1, 2)), ar.end());
    print(ar);
}
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
03.03.2013, 14:41     Использование функции sort #5
самописную используют если стандартный вариант не подходит.
а стандартный вариант - это сорт с двумя аргументами:
std::sort(v.begin(),v.end());
если для типов контейнера есть оператор <, то это скомпилируется.
vbloodv
 Аватар для vbloodv
22 / 22 / 0
Регистрация: 15.12.2012
Сообщений: 314
03.03.2013, 16:08  [ТС]     Использование функции sort #6
yuron_477,
Цитата Сообщение от yuron_477 Посмотреть сообщение
C++
1
ar.erase(std::remove_if(ar.begin(), ar.end(), std::bind(std::greater<int>(), std::placeholders::_1, 2)), ar.end());
bind - это boost? у меня просто компилятор visual studio 2008...
Yandex
Объявления
03.03.2013, 16:08     Использование функции sort
Ответ Создать тему
Опции темы

Текущее время: 22:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru