我正在编写一个C ++算法来解决棋盘游戏。 解决方案基于以下内容:
enqueue initial board
while queue not empty:
dequeue a board
if board is solved:
print solution
else:
for each possible board that can arise out of this one:
add board to end of queue
由于我不想多次检查同一块板,我使用std::set<Board>
来跟踪被检查的板。
在Board
中bool operator<(const Board& rhs) const
定义了std::set
正常工作。
那么,如果我的比较函数无法确保董事会实例中的订单,我的std::set
会发生什么?
例如:
a = Board()
b = Board()
c = Board()
a > b returns true
b > c returns true
a > c returns false
std::set
是否有可能,因为它基于红黑树,不止一次插入同一个主板?
答案 0 :(得分:1)
如果比较器不能正常工作,结构将无法正常工作。它可能会报告项目丢失。它可能无法插入某些内容。它可能会快速崩溃,或者它似乎适用于所有测试用例,然后崩溃在客户的计算机上。
所有赌注都已关闭。