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

mem_fun и mem_fun_ref - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ С чего начать? http://www.cyberforum.ru/cpp-beginners/thread922372.html
Я уже давно заинтересован в программировании и хочу заняться самообучением. Но не знаю с чего начать, какой язык программирования стоит выбрать для начала? Какие книги стоит приобрести?
C++ Чтение из двух файлов и запись в один Помогите с одной задачей. У меня есть два файла: 1. "oldmast.dat" в котором 4 поля: номер счета клиента, фимилия, имя и баланс; 2. "trans.dat" где 2 поля: номер счета клиента и вносимая сумма; И... http://www.cyberforum.ru/cpp-beginners/thread922359.html
C++ Расставить на доске N ферзей так, чтобы они не били друг друга
смысл в том чтобы расставить на шахматной доске размером N*N, N ферзей так, чтобы они не били друг друна. пыиался сделать что то методом перебора, но программа зависает. где здесь может быть ошибка?...
C++ Прочитать все записи, номер которых кратен 5 и вывести их не экран.
задан файл неопределённой длины, прочитать все записи, номер которых кратен 5 и вывести их не экран.
C++ Ошибка при "сборке" Cannot open include file: 'stdafx.h': No such file or directory http://www.cyberforum.ru/cpp-beginners/thread922341.html
Я полный ноль в C++=( Вот код:#include "stdafx.h" #include <stdio.h> #include <windows.h> #define MAXINJECTSIZE 4096 typedef HINSTANCE (*LoadLibrary_Ptr)(LPCTSTR);
C++ Как правильно записать условие в оператор if Имеется структура pro. Надо пропустить в if те элементы структуры, которые находятся в промежутке между pr и pr if (( pro.price >= pr )&&( pro.price <= pr )) //так пишет ошибку ??? pr и pr... подробнее

Показать сообщение отдельно
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
13.07.2013, 03:03  [ТС]
А как два шаблона определить???? Отак не получается.
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
#include <iostream>
using std::cout;
using std::endl;
#include <functional>
using std::unary_function;
#include <string>
using std::string;
#include <vector>
using std::vector;
#include <algorithm>
using std::transform;
//using namespace::std;
 
//для константных
template<class R, class T> class Mem_fun_t : public unary_function<T*,R>
{
    R(T::*pmf)() const;
public:
    explicit Mem_fun_t(R(T::*p)() const) :pmf(p){}
 
    R operator()(T* p)const {return (p->*pmf)();}//вызов по указателю
};
 
template<class R,class T> Mem_fun_t<R,T> Mem_fun( R(T::*f)() const)
{
    cout <<"mu tyt const"<<endl;//не вызовется моя
    return Mem_fun_t<R,T>(f);
}
 
//для не константных
template<class A, class B> class Mem_fun_t : public unary_function<A*,B>
{
    A(T::*pmf)();
public:
    explicit Mem_fun_t(A(T::*p)()) :pmf(p){}
 
    A operator()(B* p)const {return (p->*pmf)();}//вызов по указателю
};
 
template<class R,class T> Mem_fun_t<R,T> Mem_fun( R(T::*f)())
{
    cout <<"mu tyt ne const"<<endl;//не вызовется моя
    return Mem_fun_t<R,T>(f);
}
 
int main()
{
    vector<string*> v;
    v.push_back(new string("one"));
    v.push_back(new string("twooo"));
    int l[2];
    
    transform(v.begin(),v.end(),l,Mem_fun(&string::length));
 
    for(int i=0;i<2;i++)
        cout <<l[i]<<' ';//3 5
    cout <<endl;
 
    return 0;
}
Добавлено через 15 минут
Ладно тупанул я проехали тему, там просто перегрузить функции и все.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru