gpt4 book ai didi

c++ - std::set 与不一致的运算符<

转载 作者:行者123 更新时间:2023-11-30 05:40:38 24 4
gpt4 key购买 nike

我正在编写 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

因为我不想多次检查同一 block 板,所以我使用 std::set<Board>跟踪检查过的电路板。

Boardbool 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 , 因为它是基于红黑树的,所以插入同一个 Board 不止一次?

最佳答案

如果比较器不能正常工作,结构将不能正常工作。它可能会报告元素丢失。它可能无法插入某些东西。它可能会很快崩溃,或者它可能看起来适用于您的所有测试用例,然后在客户的机器上崩溃。

一切都结束了。

关于c++ - std::set 与不一致的运算符<,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31534231/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com