我正在为我的 C++ 编程课程分配一个涉及实现哈希映射的作业。我的导师给了我们一个头文件,我们需要将它与我们的哈希映射类一起使用。提供的头文件包含以下行:
typedef std::function<unsigned int(const std::string&)> HashFunction;
根据我对 C++ 的(有限)理解,这会将 HashFunction 类型定义为 std::function。但是,当我编译代码时,我得到了错误:
./HashMap.h:46:15: error: no type named 'function' in namespace 'std'
typedef std::function<unsigned int(const std::string&)> HashFunction;
~~~~~^
./HashMap.h:46:23: error: expected member name or ';' after declaration specifiers
typedef std::function<unsigned int(const std::string&)> HashFunction;
~~~~~~~~~~~~~~~~~~~~~^
HashMap.h 文件有
#include <functional>
在顶部,如果重要的话。
有谁知道我为什么会收到这些错误?