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,它用于创建函数对象(如果我说得对的话,对象的行为类似于函数)。