在 std::map 中使用引用
use reference in std::map
我想在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 容器不支持引用,因为它们要求其元素类型满足可擦除的要求,在这种情况下,引用则不支持。
相关文章:
- C++ std::map 的返回值引用
- 如何在map::find()函数中引用类元素?
- C++ 接受对抽象类的常量引用的构造函数无法初始化 std::map
- C ++如果我使用引用,为什么要清空我的map<string,string>?
- 错误 C2062:引用 std::map 时键入意外
- 通过引用将 std::map 传递给不更新映射的类的构造函数
- 取消引用刚刚插入的 std::map 值有时会导致访问冲突
- 如何在结构数据结构中使用 map stl 并初始化映射,然后引用它
- std::map 引用键时的行为
- 在 std::map 中使用引用
- C++:引用std::map中的计数值;std::multimap是更好的选择吗
- 当通过const引用传递对象时,对象所发生的事情会被添加到类似std::map的容器中
- C ++ map/set 迭代器不能使用 .find 取消引用
- map/set迭代器不是可解引用的c++ map
- c++ std::map::iterator一无所获,但下标操作符返回对映射值的引用
- C++ 映射/设置迭代器不可取消引用 --- map<const char *,字符串>
- map带有const模板形参和const引用模板形参
- 通过引用返回stl map的正确方法/此行为是否定义良好?
- 从取消引用的迭代器返回 std::map<std::string, int> 时出现巨大的内存泄漏
- 从任意Map获取指向mapped_type的指针或引用