我正在尝试确定对象是否已包含在 std::set
中。根据 msdn(和其他来源),set::find 函数应该返回 end()
如果它没有找到您要求的元素。
但是,当我实现如下代码时,set::find
返回垃圾 (0xbaadf00d
)。
set<Cell*> cellSet;
Cell* cell = new Cell();
if (cellSet.find(cell) == cellSet.end())
{
...
}
我是否正确使用了它?我在 Visual C++ 2005 中工作。
最佳答案
您发布的代码将始终执行 if
中的代码,并且 0xbaadf00d
是 实现的“one-past-the-end "标记。
关于c++ - 确定对象是否在 std::set 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/820859/