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

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

Войти
Регистрация
Восстановить пароль
 
Mar-12
-21 / 5 / 1
Регистрация: 14.03.2013
Сообщений: 130
#1

предикат - C++

30.05.2013, 19:21. Просмотров 586. Ответов 2
Метки нет (Все метки)

Здравствуйте, не могу понять что должна принимать функция в качестве предиката. Вот допустим контейнер vector, можете привести маленький пример sort() функции пожалуйста?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2013, 19:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос предикат (C++):

Предикат сортировки - C++
Объясните в чем разница в использовании: class CompareResID { public: bool operator()(const ResultGroup& d1, const...

Расшифруйте пожалуйста предикат - C++
Существует класс Person class Person { string Family, Name, Sex; int BirthDay,ExpTime; public: Person( char* f, ...

Предикат для сортировки std::list - C++
Помогите правильно составить предикат для сортировки std::list Валит ошибку WinXP, VC6 #include "stdafx.h" #include <list> ...

Как может выглядеть предикат в данной функции? - C++
Как может выглядеть предикат в такой функции ?? void BestInMark(Group gr,int cntStudents) { Student st,temp; temp = gr.st; ...

Указатели на функцию. Задача 2: функция предикат с void указателем - C++
Сумму элементов массива, лежащих в пределах (a <b)

Как ввести в предикат условие с клавиатуры? Подробнее внутри - C++
Судари,есть вот такой кусок кода bool killer(Task a) { return a.pageNum>0;//Вот тут } int main() { ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
30.05.2013, 19:40 #2
Логическую функцию или функтор.
C++
1
2
3
4
5
6
bool op(int x, int y)
{
    return x > y; // по убыванию
}
...
sort(v.begin(), v.end(), op);
или
C++
1
2
3
4
5
6
7
8
9
10
11
12
class op
{
    int x_;
public:
    op(): x_(3) {}
    bool operator () (int x, int y)
    {
        return x > x_ && y < x_; // сравнение с 3
    }
};
...
sort(v.begin(), v.end(), op());
Croessmah
Модератор
Эксперт CЭксперт С++
13132 / 7395 / 828
Регистрация: 27.09.2012
Сообщений: 18,222
Записей в блоге: 3
Завершенные тесты: 1
30.05.2013, 19:43 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
 
bool pred(int x1,int x2){
    return x1<x2;
}
 
int main(){
    const int size = 10;
    int arr[size]={10,20,50,12,54,89,13,42,7,4};
    std::vector<int> vec(arr,arr+size);
    std::sort(vec.begin(),vec.end(),pred);
    std::copy(vec.begin(),vec.end(),std::ostream_iterator<int>(std::cout," "));
}
Алгоритмы STL
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2013, 19:43
Привет! Вот еще темы с ответами:

Сделать так, чтобы предикат работал тоже шаблонно, в зависимости от типа значений, хранимых ей - C++
Здравствуйте! Имеется некий предикат, например: bool isInteger (double value){ return static_cast&lt;int&gt;(value)==value; } ...

Предикат для find_if: вернуть итератор указателя на struct, поле которой соответствует искомому значению - C++
Если у меня есть вектор в котором лежат указатели на struct. Мне необходимо вернуть итератор указателя на struct поле которой...

Предикат see - Prolog
Объясните предикат see и приведите пожалуйста примеры, где он используется.

Предикат - Pascal ABC
Написать программу, которая определяет истинность предиката. L=(NOT(C)AND D) OR (A XOR B). Где A = (ctg(x)=tg(x)), B=FALSE, C=...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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