Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

07.01.2013, 19:59. Просмотров 522. Ответов 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() );
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2013, 19:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как ввести в предикат условие с клавиатуры? Подробнее внутри (C++):

Ввести с клавиатуры значение a и b. Проверить условие - C++
Помогите!!!!!((( 1) Ввести с клавиатуры значение a и b. Проверить условие А) b == (a-4); Б) b> -10 & & b <= 5. 2) Пусть b1 =...

Как ввести двумерный массив с клавиатуры? Его размерность [n][m] нужно задавать с клавиатуры. - C++
Привет всем. Как ввести двумерный массив с клавиатуры? Его размерность нужно задавать с клавиатуры.

Необходимо составить программу, выводящую на экран матрицу данного вида (подробнее внутри) - C++
Здравствуйте. Необходимо составить программу (желательно дополнить мой фрагмент программы, приведенный ниже), которая выводит на экран...

Как ввести EOF с клавиатуры? - C++
как ввести EOF c клавиатуры ?

Как ввести с клавиатуры строку - C++
Добрый день. У меня есть строка в которой 6000 тысяч символов, конец строки '\r\n'. Как записать все 6 тысяч символов в string...

Как ввести текстовую переменную в С++ с клавиатуры - C++
Я ввожу так char *str1 = "la"; Все отлично вводиться ! Но мне нужно ввести с клавиатуры, помогите.

12
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,055
Записей в блоге: 17
07.01.2013, 20:12 #2
C++
1
2
3
4
bool killer(Task a,int const val)
{
    return a.pageNum>val;//Вот тут
}
Далее передавать биндами,адаптерами
1
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;//Вот тут
}
Далее передавать биндами,адаптерами
Спасибо.
Буду гуглить.
0
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,055
Записей в блоге: 17
07.01.2013, 20:16 #4
Ээ Шилд помойму об этом плохо пишит ...
Лучше сразу брать литературу чисто про STL
0
Floppycatman
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 10
07.01.2013, 20:17  [ТС] #5
Цитата Сообщение от Avazart Посмотреть сообщение
Ээ Шилд помойму об этом плохо пишит ...
Лучше сразу брать литературу чисто про STL
Приму к сведению.
0
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,055
Записей в блоге: 17
07.01.2013, 20:19 #6
Где применяется bind
Литература C++
1
Floppycatman
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 10
07.01.2013, 21:20  [ТС] #7
Спасибо.

Добавлено через 25 минут
Avazart, а как заставить работать #include "boost\bind.hpp"?
Компилятор говорит,что нет такого. Я в ступоре.
0
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,055
Записей в блоге: 17
07.01.2013, 21:22 #8
Цитата Сообщение от Floppycatman Посмотреть сообщение
Avazart, а как заставить работать #include "boost\bind.hpp"?
Компилятор говорит,что нет такого. Я в ступоре.
Учтановить boost либо ставить компилятор с поддержкой нового стандарта ( С++11), но можно и без этого ...
0
Floppycatman
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 10
07.01.2013, 21:23  [ТС] #9
Цитата Сообщение от Avazart Посмотреть сообщение
Учтановить boost либо ставить компилятор с поддержкой нового стандарта ( С++11), но можно и без этого ...
А как без него?
Препод явно начнет говорить,что это излишки.
0
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
07.01.2013, 21:24 #10
Можно так:
C++
1
std::bind2nd(std::ptr_fun(killer), 0)
1
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. А у меня же второй параметр вносится.
0
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,055
Записей в блоге: 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;
}
//--------------------------------------
1
Floppycatman
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 10
07.01.2013, 21:54  [ТС] #13
Всем спасибо.
Все сделал.
0
07.01.2013, 21:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2013, 21:54
Привет! Вот еще темы с ответами:

Как ввести массив строк с клавиатуры? - C++
как сделать чтоб вводить массив строк с клавиатуры? // Lab13M.cpp: определяет точку входа для консольного приложения. // ...

Как ввести с клавиатуры слова в char? - C++
подскажите пожалуйста как ввести с клавиатуры &quot;fat a cat sit in the table&quot; или другие слова?и как сделать так что бы в char s2 и как...

Ввести с клавиатуры массив, распределить память для его размещения и ввести int значения этого массива - C++
Подскажите пожалуйста. Задача такая : ввести с клавиатуры n элементов массива, распределить память для его размещения и ввести int значения...

Как ввести с клавиатуры элементы динамического массива? - C++
int *mass=new int; for(int i=0;i&lt;10;i++) { } Как ввести в цикле элементы массива , а потом вывести их на экран? Подскажите...


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

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

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