我想知道我怎么能(如果我可以的话)输出(调用)函数的功能。我想要1,UP输出。这是我导师的新任务。在现实生活中的示例中练习回调功能。 (我开始创造一个小游戏)。
#include <functional>
#include <iostream>
#include <string.h>
#include <map>
using namespace std;
void up (){
cout<<"UP";
}
void down (){
cout<<"DOWN";
}
void left (){
cout<<"LEFT";
}
void right (){
cout<<"RIGHT";
}
int main (){
typedef map<int, void (*)()> mapaF;
mapaF Kretnje;
Kretnje.insert(pair<int,void (*)() >(1, up));
// Kretnje.insert(pair<int, void (*)()>(2, down));
// Kretnje.insert(pair<int, void (*)()>(3, left));
// Kretnje.insert(pair<int, void (*)()>(4, right));
for(auto a: Kretnje){
cout<<"Kljuc: "<<a.first<<", Funkcija: "<<a.second<<endl;
}
//output 1, 1(?))
return 0;
}
答案 0 :(得分:1)
您可以在其上使用相同的函数调用语法()
。
for (auto a : Kretnje)
a.second(); //UP
请注意,调用该函数会返回void
,因此您无法在cout
链中调用它。
std::cout << a.first << a.second(); //error, a.second() is void