got*_*ch4 4 c++ stl hashmap c++11
在Java和C#工作了几年之后,我现在又回到了C++.当然,我的编程风格受这些语言的影响,我倾向于感觉需要大量使用的特殊组件:HASH MAP.在STL中有hash_map,GCC说它已被弃用,我应该使用unordered_map.所以我转向它.我承认我不确定我正在做什么的可移植性,因为我必须使用编译器开关打开即将推出的标准的-std = c ++ 0x功能.无论如何,我对此很满意.如果我上课,我就无法工作
std::unordered_map<unsigned int, baseController*> actionControllers;
Run Code Online (Sandbox Code Playgroud)
并在一个方法中:
void baseController::attachActionController(unsigned int *actionArr, int len,
baseController *controller) {
for (int i = 0; i < len; i++){
actionControllers.insert(actionArr[i], controller);
}
}
Run Code Online (Sandbox Code Playgroud)
它出现了通常的象形文字说它无法找到插入...提示?
Mik*_*our 18
insert采用类型的单个参数,这是一个键值对std::pair<const key_type, mapped_type>.所以你会像这样使用它:
actionControllers.insert(std::make_pair(actionArr[i], controller));
Run Code Online (Sandbox Code Playgroud)
只需使用:
actionControllers[ actionArr[i] ] = controller;
Run Code Online (Sandbox Code Playgroud)
这是运算符重载java欠你多年:)