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

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

Войти
Регистрация
Восстановить пароль
 
Floppycatman
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 10
#1

Как ввести в предикат условие с клавиатуры? Подробнее внутри - C++

07.01.2013, 19:59. Просмотров 500. Ответов 12
Метки нет (Все метки)

Судари,есть вот такой кусок кода

C++
1
2
3
4
5
6
7
8
9
bool killer(Task a)
{
    return a.pageNum>0;//Вот тут
}
 
int main()
{
    ...
}
Как вводить значение с клавиатуры туда,где стоит ноль? Предикат используется в данной строчке
C++
1
sourse.erase(remove_if(sourse.begin(), sourse.end(), killer), sourse.end() );
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2013, 19:59     Как ввести в предикат условие с клавиатуры? Подробнее внутри
Посмотрите здесь:

Ввести с клавиатуры значение a и b. Проверить условие C++
C++ Ввести с клавиатуры массив из N чисел (N также вводится с клавиатуры). Найти наименьший из его положительных элементов.
Ввести с клавиатуры массив, распределить память для его размещения и ввести int значения этого массива C++
C++ Как ввести EOF с клавиатуры?
C++ Как ввести двумерный массив с клавиатуры? Его размерность [n][m] нужно задавать с клавиатуры.
C++ Как ввести с клавиатуры элементы динамического массива?
Необходимо составить программу, выводящую на экран матрицу данного вида (подробнее внутри) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avazart
7044 / 5221 / 259
Регистрация: 10.12.2010
Сообщений: 22,944
Записей в блоге: 17
07.01.2013, 20:12     Как ввести в предикат условие с клавиатуры? Подробнее внутри #2
C++
1
2
3
4
bool killer(Task a,int const val)
{
    return a.pageNum>val;//Вот тут
}
Далее передавать биндами,адаптерами
Floppycatman
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 10
07.01.2013, 20:14  [ТС]     Как ввести в предикат условие с клавиатуры? Подробнее внутри #3
Цитата Сообщение от Avazart Посмотреть сообщение
C++
1
2
3
4
bool killer(Task a,int const val)
{
    return a.pageNum>val;//Вот тут
}
Далее передавать биндами,адаптерами
Спасибо.
Буду гуглить.
Avazart
7044 / 5221 / 259
Регистрация: 10.12.2010
Сообщений: 22,944
Записей в блоге: 17
07.01.2013, 20:16     Как ввести в предикат условие с клавиатуры? Подробнее внутри #4
Ээ Шилд помойму об этом плохо пишит ...
Лучше сразу брать литературу чисто про STL
Floppycatman
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 10
07.01.2013, 20:17  [ТС]     Как ввести в предикат условие с клавиатуры? Подробнее внутри #5
Цитата Сообщение от Avazart Посмотреть сообщение
Ээ Шилд помойму об этом плохо пишит ...
Лучше сразу брать литературу чисто про STL
Приму к сведению.
Avazart
7044 / 5221 / 259
Регистрация: 10.12.2010
Сообщений: 22,944
Записей в блоге: 17
07.01.2013, 20:19     Как ввести в предикат условие с клавиатуры? Подробнее внутри #6
Где применяется bind
Литература C++
Floppycatman
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 10
07.01.2013, 21:20  [ТС]     Как ввести в предикат условие с клавиатуры? Подробнее внутри #7
Спасибо.

Добавлено через 25 минут
Avazart, а как заставить работать #include "boost\bind.hpp"?
Компилятор говорит,что нет такого. Я в ступоре.
Avazart
7044 / 5221 / 259
Регистрация: 10.12.2010
Сообщений: 22,944
Записей в блоге: 17
07.01.2013, 21:22     Как ввести в предикат условие с клавиатуры? Подробнее внутри #8
Цитата Сообщение от Floppycatman Посмотреть сообщение
Avazart, а как заставить работать #include "boost\bind.hpp"?
Компилятор говорит,что нет такого. Я в ступоре.
Учтановить boost либо ставить компилятор с поддержкой нового стандарта ( С++11), но можно и без этого ...
Floppycatman
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 10
07.01.2013, 21:23  [ТС]     Как ввести в предикат условие с клавиатуры? Подробнее внутри #9
Цитата Сообщение от Avazart Посмотреть сообщение
Учтановить boost либо ставить компилятор с поддержкой нового стандарта ( С++11), но можно и без этого ...
А как без него?
Препод явно начнет говорить,что это излишки.
gray_fox
What a waste!
1253 / 1136 / 54
Регистрация: 21.04.2012
Сообщений: 2,359
Завершенные тесты: 3
07.01.2013, 21:24     Как ввести в предикат условие с клавиатуры? Подробнее внутри #10
Можно так:
C++
1
std::bind2nd(std::ptr_fun(killer), 0)
Floppycatman
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 10
07.01.2013, 21:25  [ТС]     Как ввести в предикат условие с клавиатуры? Подробнее внутри #11
Цитата Сообщение от gray_fox Посмотреть сообщение
Можно так:
C++
1
std::bind2nd(std::ptr_fun(killer), 0)
Мне резко стало стыдно.
Я писал bind1nd. А у меня же второй параметр вносится.
Avazart
7044 / 5221 / 259
Регистрация: 10.12.2010
Сообщений: 22,944
Записей в блоге: 17
07.01.2013, 21:52     Как ввести в предикат условие с клавиатуры? Подробнее внутри #12
Приблизительно так ( код не проверял )

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <vector>
#include <utility>
#include <algorithm>
 
using namespace std;
//-------------------------------------
class Task
 {
   public:
     unsigned pageNum;
 };
//-------------------------------------
template<typename T1,typename T2>
struct killer: public binary_function<T1, T2, bool>
{
 bool operator()(T1 a, T2 howMuch)const
   {
    return a.pageNum>howMuch;
   }
};
//-------------------------------------
int main()
{
std::vector<Task>  sourse;
const unsigned howMuch = 0;
 
remove_if( sourse.begin(), sourse.end(), bind2nd( killer<Task,unsigned>(),howMuch )   );
 
return 0;
}
//--------------------------------------
Добавлено через 25 минут
Ну или так

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <string>
#include <vector>
#include <utility>
#include <algorithm>
 
using namespace std;
//-------------------------------------
class Task
 {
   public:
     unsigned pageNum;
     Task(unsigned Num=0):pageNum(Num){};
 };
//-------------------------------------
bool cmp(Task a,unsigned val)
{
 return a.pageNum>val;
}
//-------------------------------------
int main()
{
std::vector<Task>  sourse;
for(size_t i=0; i<5 ;i++) sourse.push_back(Task(i) );
 
for(size_t i=0;i<sourse.size();i++) { cout<<sourse[i].pageNum<<"\t"; }
cout<<endl;
 
unsigned howMuch = 2;
 
sourse.erase(remove_if( sourse.begin(), sourse.end(), bind2nd( std::ptr_fun(cmp),howMuch)),sourse.end() );
 
for(size_t i=0;i<sourse.size();i++) { cout<<sourse[i].pageNum<<"\t"; }
cout<<endl;
 
return 0;
}
//--------------------------------------
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2013, 21:54     Как ввести в предикат условие с клавиатуры? Подробнее внутри
Еще ссылки по теме:

Как ввести массив строк с клавиатуры? C++
Как ввести с клавиатуры слова в char? C++
C++ Как ввести текстовую переменную в С++ с клавиатуры
Как ввести с клавиатуры строку C++
C++ Что такое вектор? И как его ввести с клавиатуры?

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

Или воспользуйтесь поиском по форуму:
Floppycatman
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 10
07.01.2013, 21:54  [ТС]     Как ввести в предикат условие с клавиатуры? Подробнее внутри #13
Всем спасибо.
Все сделал.
Yandex
Объявления
07.01.2013, 21:54     Как ввести в предикат условие с клавиатуры? Подробнее внутри
Ответ Создать тему
Опции темы

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