std::unordered_map<unsigned int, baseController*> actionControllers;
并在方法中:
void baseController::attachActionController(unsigned int *actionArr, int len,
baseController *controller) {
for (int i = 0; i < len; i++){
actionControllers.insert(actionArr[i], controller);
}
}
它出现了通常的象形文字,说它找不到插入...提示?
答案 0 :(得分:18)
insert
接受一个类型为std::pair<const key_type, mapped_type>
的键值对的参数。所以你会这样使用它:
actionControllers.insert(std::make_pair(actionArr[i], controller));
答案 1 :(得分:9)
只需使用:
actionControllers[ actionArr[i] ] = controller;
这是运营商重载java欠你的年龄:)
答案 2 :(得分:4)
如果您已经决定使用(expreimental但尚未准备好)C ++ 0x,那么您可以使用这样的语法将键值对插入到unordered_map中:
actionControllers.insert({ actionArr[i], controller });
gcc 4.4.0支持此功能
答案 3 :(得分:2)
尝试:
actionControllers.insert(std::make_pair(actionArr[i], controller));
答案 4 :(得分:1)
STL insert
通常是map.insert(PAIR(key, value));
。也许那是你的问题?
PAIR将为std::unordered_map<unsigned int, baseController*>::value_type