std::unordered_map可不可以添加函数指针
时间: 2024-04-10 19:26:01 浏览: 121
std::unordered_map是C++标准库中的一个关联容器,用于存储键值对。它的键和值可以是任意类型,包括函数指针。
可以通过将函数指针作为值来添加到std::unordered_map中。例如,可以使用函数指针作为值来实现一种简单的回调机制,其中键表示某个事件,值是对应的函数指针。
以下是一个示例代码,展示了如何向std::unordered_map中添加函数指针:
```cpp
#include <iostream>
#include <unordered_map>
void func1() {
std::cout << "Function 1 called" << std::endl;
}
void func2() {
std::cout << "Function 2 called" << std::endl;
}
int main() {
std::unordered_map<std::string, void(*)()> functionMap;
functionMap["event1"] = func1;
functionMap["event2"] = func2;
// 调用函数指针
functionMap["event1"]();
functionMap["event2"]();
return 0;
}
```
在上述示例中,我们创建了一个std::unordered_map,键的类型为std::string,值的类型为void(*)(),即函数指针类型。然后,我们将两个函数func1和func2分别与键"event1"和"event2"关联起来。最后,通过调用函数指针,我们可以执行相应的函数。
阅读全文