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

Map с функциями: Как использовать функции в качестве объектов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не обработанное исключение "Integer division by zero" http://www.cyberforum.ru/cpp-beginners/thread1239573.html
Писал программу для подсчета кол-ва сочетаний. Программа запускается нормально, но как только ввожу результаты и нажимаю Enter, то всплывает окно: "Необработанное исключение в "0x00fd26a4" в "f.exe": 0xC0000094: Integer division by zero." Вот сама программа: #include <conio.h> #include <iostream> using std::cout;
C++ Переменная в качестве номера элемента массива. Array[Var] Мне нужно изменяя некую переменную Var обращатся к различным элементам массива Array. Компилятор не выдаёт ошибок, но код выполняется не так, как задумано, Например SomeVar = Array // в лучшем случае получается что SomeVar принимает значение Var. Короче не работает, и как я понимаю и не должно. Помогите придумать выход из ситуации, иначе я просто разочаруюсь в этом очень сложном и... http://www.cyberforum.ru/cpp-beginners/thread1239546.html
Помогите составить регулярку, принимающую несколько знаков C++
Короче нужно составить регулярку которая будет принимкть буквы числа и знаки - _ делал как обычно составлял на php {2,20} но тут такойвариант некатит, вообще ошибку викидывает. когда с одним любым знаком норм {2,20}норм {2,20}норм как тут написать несколько знаков?
Передача массива в функцию в качестве параметра C++
Всем привет! Файл с реализацией: int Init_can::Send(int* msgdata) { //Send canmsg_t tx; ULONG ulWritten; ZeroMemory(tx.data, 8);
C++ Вывести в новый файл список студентов, удалив из него студентов окончивших школу в текущем году. http://www.cyberforum.ru/cpp-beginners/thread1239489.html
На основе данных входного файла составить список студентов группы, включив следующие данные: ФИО, год рождения, домашний адрес, какую школу окончил. Вывести в новый файл список студентов, удалив из него студентов окончивших школу в текущем году. Прошу помогите, понятным языком, желательно весь код, потому что я только учусь и могу не правильно понять отрывки. Заранее спасибо. выполнить с...
C++ Приписать значок € Вот код программы: #include <iostream> int main() { double a=0, b=0, c=0; std::cout << " Enter the width of the picture "; std::cin >> a; std::cout << " Enter the length of the picture "; std::cin >> b; c =a*b*0.00406; подробнее

Показать сообщение отдельно
pihta
1 / 1 / 0
Регистрация: 11.11.2012
Сообщений: 23
07.08.2014, 15:16     Map с функциями: Как использовать функции в качестве объектов
Создал map, в котором по знаку операции( '^' к примеру) ищется бинарная операция. Вот код.

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
#include <iostream>
#include <map>
#include <functional>
 
using std::cout;
using std::cin;
using std::endl;
using std::map;
using std::binary_function;
 
typedef map< char, binary_function <int, int, int> > mapOfFun;
 
void mapWithFunctionsTest();
 
int main()
{
    mapWithFunctionsTest();
 
    cin.get();
    return 0;
}
 
template< typename T >
struct modulus: public binary_function <T,T,T> 
{
    T operator()(const T& x, const T& y) const
    {
        return int( pow( x, y ) );
    }
};
 
template< typename T >
struct power: public binary_function <T,T,T> 
{
    T operator()(T& x, const T& y) const
    {
        return int( pow( x, y ) );
    }
};
 
void mapWithFunctionsTest()
{
    mapOfFun m;
    mapOfFun::iterator it;
    binary_function <int, int, int> f;
 
    m.emplace( '+', std::plus<int>() );
    m.emplace( '-', std::minus<int>() );
    m.emplace( '*', std::multiplies<int>() );
    m.emplace( '/', std::divides<int>() );
    m.emplace( '%', modulus<int>() );
    m.emplace( '^', power<int>() );
 
    it = m.find( '^' );
    f = it->second;
}
Но я не могу понять как мне теперь воспользоваться функцией которую я нашел. К примеру как вывести f(1, 2).

Вообще, вся проблема заключается в том, что я абсолютно не знаю как использовать функции в качестве объектов, поэтому я буду искренне благодарен, если помимо кода кто-нибудь посоветует где про это можно почитать, т.к. в моей книжке( Дейтлы - Как программировать на С++ ) про это ничего не написано.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru