在 std::map 中使用引用

use reference in std::map

本文关键字:引用 map std      更新时间:2023-10-16

我想在std::map中使用引用

typedef const std::function<void(const cocos2d::Ref*)>& callBack;
std::map<const std::string&, callBack> m_mapListener

我的错误消息是:

error C2535: 'const std::function<void (const cocos2d::Ref *)> &std::map<const std::string &,callBack,
std::less<_Kty>,std::allocator<std::pair<_Kty,_Ty>>>::operator [](const std::basic_string
<char,std::char_traits<char>,std::allocator<char>> &)' : 
member function already defined or declared 
C:Program Files (x86)Microsoft Visual Studio 12.0VCincludemap

我该如何解决它?

map定义为:

std::map<std::string, callBack> m_mapListener;

STL 容器不支持引用,因为它们要求其元素类型满足可擦除的要求,在这种情况下,引用则不支持。