C++ 如何从映射创建键盘侦听器?
我的任务是创建一个包含键值和函数的映射。我设法做到了。现在,我需要创建一个循环,在这个循环中,我需要通过按上、下、左、右键盘按钮调用不同的打印函数(例如,我按上,函数打印“向上”)。知道怎么做吗?我的导师告诉我,这是理解函数对象用法的一种实践。以下是我目前的计划:C++ 如何从映射创建键盘侦听器?,c++,keyboard,game-development,C++,Keyboard,Game Development,我的任务是创建一个包含键值和函数的映射。我设法做到了。现在,我需要创建一个循环,在这个循环中,我需要通过按上、下、左、右键盘按钮调用不同的打印函数(例如,我按上,函数打印“向上”)。知道怎么做吗?我的导师告诉我,这是理解函数对象用法的一种实践。以下是我目前的计划: #include <functional> #include <iostream> #include <string.h> #include <map> using namespa
#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();
cout<<endl;
}
return 0;
}
#包括
#包括
#包括
#包括
使用名称空间std;
作废(){
有没有可能的帮助线索:你的老师是否谈论过“函数对象”(std::function
)或“函数指针”?他说我需要从函数指针开始,然后是std::function,它用于创建函数对象(如果我说得对的话,对象的行为类似于函数)。