Yak*_*kov 0 c++ reference map visual-studio-2010 assign
我有以下代码:
std::map<size_t,Cell&> m_cellMap;
Run Code Online (Sandbox Code Playgroud)
当Cell定义如下:
class Cell
{
public:
Cell(int x = 0,int y = 0) : m_x(x),m_y(y) { }
private:
int m_x;
int m_y;
/// class members and methods
};
Run Code Online (Sandbox Code Playgroud)
我不能编译下面的代码:
Cell c;
m_cellMap[0] = c;
Run Code Online (Sandbox Code Playgroud)
得到错误:出了error C2101: '&' on constant
什么问题?如何解决?
谢谢
不能在标准容器中保存引用,而是使用指针:
std::map<size_t,Cell*> m_cellMap;
Cell c;
m_cellMap[0] = &c;
Run Code Online (Sandbox Code Playgroud)
你不能std::map参考.引用没有std::map映射到的值必须具有的属性.
尝试创建一个std::map<size_t, Cell*>,并做m_cellMap[0] = &c;