我正在使用这个无序的地图:
typedef unordered_map <char, void (*)()> Keymap;
Keymap keys;
并尝试用以下内容填充它:
void assign(char key, void (*value)())
{
if (keys[key] == NULL)
keys.insert(Keymap::value_type(key, value));
else
keys[key] = value;
}
指令:
keys.insert(Keymap::value_type(key, value));
将字符插入到键中,但值未初始化(NULL),所以我有一个带有('s',NULL)而不是('s',function_pointer)的映射。
指令keys[key] = value; 工作正常。
错误在哪里?