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

binder3 - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как сделать проверку логина из файла? http://www.cyberforum.ru/cpp-beginners/thread924217.html
Как сделать проверку логина из файла? Ну допустим у меня есть такое: #include <iostream> #include <cstdlib> #include <fstream> #include <string> using namespace std;
C++ Можно ли использовать cin.getline для указателя типа char* Вот к примеру код он работает, но при отладке Ошибка доступа. #include <iostream> using namespace std; struct EXAMPLE{char* pName; char* pAvto; EXAMPLE* next; }; int main(int nArg,char* pszArgv) {EXAMPLE* pv = new EXAMPLE; cin.getline(pv->pName,128); http://www.cyberforum.ru/cpp-beginners/thread924216.html
C++ delete this
Добрый день! У меня возник такой вопрос - почему в программе возникает неопределённое поведение для объекта, в деструкторе которого присутствует конструкция delete this? Ведь, по идеи, всё верно - удаляем объект по адресу, выходим из функции-деструктора и всё хорошо - объект больше память не занимает.
C++ Нужен код, который сможет изменять порядок вопросов при запуске программы
Нужен код,который сможет изменять порядок вопросов при запуске программы. Например:(при первом запуске) 1)Сколько тебе лет? 2)Ты бухал? (При втором запуске): 1)Ты бухал? 2)Сколько тебе лет?
C++ Как делать оконные приложения C++ http://www.cyberforum.ru/cpp-beginners/thread924166.html
Извините за ламерский вопрос, но всё же, кто как делает оконные приложения на С++? Mfc? Или Borland C++ Builder? Кто может дать ссылку на какие-то уроки?) А то хочется с консоли переходить на оконные программы :)
C++ Подсчет символа //header #ifndef STRING1_H_ #define STRING1_H_ #include <iostream> using std::ostream; using std::istream; class String { private: подробнее

Показать сообщение отдельно
DU
1478 / 1054 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
17.07.2013, 00:50     binder3
если забить на адаптируемость такого предиката, то можно пойти дальше и сделать шаблонным operator ()
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include <algorithm>
#include <functional>
#include <iostream>
 
template <typename BinPred, typename T>
class binder3
{
  BinPred m_pred;
  T m_value;
 
public:
  binder3(BinPred pred, const T& value)
    : m_pred(pred)
    , m_value(value)
  {
  }
 
  template <typename U>
  bool operator () (const U& value) const
  {
    return m_pred(value, m_value);
  }
};
 
template <typename BinPred, typename T>
binder3<BinPred, T> make_binder3(BinPred pred, const T& value)
{
  return binder3<BinPred, T>(pred, value);
}
 
bool funInt(int a, int b)
{
  return a > b;
}
 
bool funLong(long a, long b)
{
  return a > b;
}
 
struct Pred
{
  bool operator () (int a, int b) const
  {
    return a > b;
  }
};
 
struct Pred2
{
  bool operator () (int a, const std::string& str) const
  {
    return a > str.length();
  }
};
 
int main()
{
  int mass[]={1,2,3,4,5,6};
  {
    int* p=std::find_if(mass,mass + 6, make_binder3(funInt, 3));
    std::cout << *p << std::endl;
  }
 
  {
    int* p=std::find_if(mass,mass + 6, make_binder3(funLong, 3));
    std::cout << *p << std::endl;
  }
 
  {
    int* p=std::find_if(mass,mass + 6, make_binder3(Pred(), 3));
    std::cout << *p << std::endl;
  }
 
  {
    const char* str = "333";
    int* p=std::find_if(mass,mass + 6, make_binder3(Pred2(), str));
    std::cout << *p << std::endl;
  }
 
  return 0;
}
 
Текущее время: 21:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru