我正在尝试确定对象是否已包含在a中std::set.根据msdn(和其他来源),end()如果找不到你要求的元素,set :: find函数应该返回.
但是,当我实现如下代码时,set::find返回junk(0xbaadf00d).
set<Cell*> cellSet;
Cell* cell = new Cell();
if (cellSet.find(cell) == cellSet.end())
{
...
}
Run Code Online (Sandbox Code Playgroud)
我正确使用这个吗?我正在使用Visual C++ 2005.
Dav*_*itt 10
您发布的代码将始终执行代码if,并且0xbaadf00d 是实现的"一个接一个"的标记.
当使用stl set时,我喜欢使用count函数来确定成员资格.我认为这使代码更容易阅读.
set<Cell*> cellSet;
Cell* cell = new Cell();
if (cellSet.count(cell) == 0)
{
...
}
Run Code Online (Sandbox Code Playgroud)