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

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

Восстановить пароль Регистрация
 
Mar-12
 Аватар для Mar-12
-21 / 5 / 1
Регистрация: 14.03.2013
Сообщений: 131
30.05.2013, 19:21     предикат #1
Здравствуйте, не могу понять что должна принимать функция в качестве предиката. Вот допустим контейнер vector, можете привести маленький пример sort() функции пожалуйста?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2013, 19:21     предикат
Посмотрите здесь:

C++ Предикат для сортировки std::list
Prolog Предикат see
Предикат Pascal ABC
Предикат сжатие и предикат определяющий наибольший по количеству элементов
C++ Как ввести в предикат условие с клавиатуры? Подробнее внутри
C++ Расшифруйте пожалуйста предикат
C++ Сделать так, чтобы предикат работал тоже шаблонно, в зависимости от типа значений, хранимых ей
C++ Предикат сортировки

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 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
Модератор
Эксперт С++
 Аватар для Croessmah
11801 / 6780 / 765
Регистрация: 27.09.2012
Сообщений: 16,833
Записей в блоге: 2
Завершенные тесты: 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
Yandex
Объявления
30.05.2013, 19:43     предикат
Ответ Создать тему
Опции темы

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