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

Функция упорядочивания элементов set - C++

Восстановить пароль Регистрация
 
HenryDukart
 Аватар для HenryDukart
99 / 99 / 27
Регистрация: 05.10.2013
Сообщений: 400
Завершенные тесты: 2
18.04.2014, 20:16     Функция упорядочивания элементов set #1
Возникла проблема на классах (элементами сет были классы). Но я попробовал такую вещь с int, и появилась та же ошибка.
C++
1
2
3
4
bool com (const int& a, const int& b)
{
    return a<b;
}
Эта функция сравнения двух чисел. Теперь пытаюсь создать множество
C++
1
set<int, com> s;
но компилятор выдает ошибку:
Код
error C2923: std::set: "com" не является допустимым аргументом типа шаблон для параметра "_Pr"
Помогите, пожалуйста, разобраться. Кстати, с функторами работает.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2014, 20:16     Функция упорядочивания элементов set
Посмотрите здесь:

Составить программу упорядочивания элементов таблицы C++
C++ поменять в настройке Character Set на Use Multy-Byte Character Set
C++ Разработать программу формирования очереди, содержащей целые числа, и упорядочивания по возрастанию элементов в этой очереди.
C++ Позиция элемента в контейнере STL кон. SET, поиск контейнер set словарь позиция
Массив и функция (количество нечетных элементов массива, минимальный из элементов и его номер) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Меорн
74 / 59 / 29
Регистрация: 01.02.2014
Сообщений: 201
18.04.2014, 21:03     Функция упорядочивания элементов set #2
C++
1
2
3
4
5
6
struct com {
    bool operator()(const int& a, const int& b)
    {
        return a < b;
    }
};
Visual Studio Eng + гугл рулят...
HenryDukart
 Аватар для HenryDukart
99 / 99 / 27
Регистрация: 05.10.2013
Сообщений: 400
Завершенные тесты: 2
18.04.2014, 22:12  [ТС]     Функция упорядочивания элементов set #3
Меорн, я написал, что с функтором работает. Интересует вопрос, почему не проходит с функцией.
Меорн
74 / 59 / 29
Регистрация: 01.02.2014
Сообщений: 201
18.04.2014, 22:44     Функция упорядочивания элементов set #4
Потому что в мануале написано "This can be a function pointer or a function object " либо указатель на функцию, либо функтор - http://www.cplusplus.com/reference/set/set/
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <set>
#include <algorithm>
 
    bool com(const int& a, const int& b)
    {
        return a > b;
    };
 
int main()
{
    bool(*fn_pt)(const int&,const int&) = com;
    std::set<int, bool(*)(const int&,const int&)> s (com);
    s.insert(5);
    s.insert(1);
    s.insert(7);
}
Yandex
Объявления
18.04.2014, 22:44     Функция упорядочивания элементов set
Ответ Создать тему
Опции темы

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