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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
HenryDukart
 Аватар для HenryDukart
122 / 122 / 35
Регистрация: 05.10.2013
Сообщений: 455
Завершенные тесты: 2
#1

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

18.04.2014, 20:16. Просмотров 323. Ответов 3
Метки нет (Все метки)

Возникла проблема на классах (элементами сет были классы). Но я попробовал такую вещь с 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++
Упорядочить массив целых положительных чисел по возрастанию, определить номер минимального простого числа до и после упорядочивания массива C++
Массив и функция (количество нечетных элементов массива, минимальный из элементов и его номер) C++
C++ Функция должна вычислять число положительных элементов массива и число элементов больших вычисленного числа
C++ STL контейнер set, вставка элементов
Упорядочить массив целых положительных чисел по возрастанию, определить но- мер минимального простого числа до и после упорядочивания массива C++
C++ Определить номер минимального простого числа до и после упорядочивания массива
Доходя до упорядочивания строк, программа перестает работать C++
C++ Разработать функцию для упорядочивания элементов структуры Girls по дате рождения
C++ Set своих элементов и функция lower_bound

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Меорн
74 / 59 / 29
Регистрация: 01.02.2014
Сообщений: 202
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
122 / 122 / 35
Регистрация: 05.10.2013
Сообщений: 455
Завершенные тесты: 2
18.04.2014, 22:12  [ТС]     Функция упорядочивания элементов set #3
Меорн, я написал, что с функтором работает. Интересует вопрос, почему не проходит с функцией.
Меорн
74 / 59 / 29
Регистрация: 01.02.2014
Сообщений: 202
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
Ответ Создать тему
Опции темы

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