错误C2101:'&'常量

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 什么问题?如何解决?

谢谢

Man*_*rse 9

不能在标准容器中保存引用,而是使用指针:

std::map<size_t,Cell*> m_cellMap;

Cell c;
m_cellMap[0] = &c;
Run Code Online (Sandbox Code Playgroud)

  • 金克斯!:-)有没有办法看到我们的时间戳比第二个更接近? (2认同)

Yak*_*ont 6

你不能std::map参考.引用没有std::map映射到的值必须具有的属性.

尝试创建一个std::map<size_t, Cell*>,并做m_cellMap[0] = &c;