【发布时间】:2013-02-20 19:20:40
【问题描述】:
我正在考虑棋盘设计,并想做一些类似的事情:
typedef std::map <std::string, CheckerPiece> MapType;
MapType CheckerBoard;
CheckerBoard.insert({"a1", null});
这是允许的,还是有办法做类似的事情?这个想法是我想保持棋盘状态,同时将 CheckerPiece 对象从一个位置移动到另一个位置。
编辑: 同样,是否可以执行以下操作:
CheckerBoard.insert({"a1", new CheckerPiece()});
【问题讨论】:
-
你想要一个字符串到指针的映射吗?
-
这是不允许的。作为一种解决方法,您可以使用像 Boost.Optional 这样的包装类型 - 这比指针更受欢迎。
-
你应该改变你的设计,这样你就不需要在容器中有 NULL 条目。请参阅下面的答案。