我正在编写一个程序,在其中创建了一个 std::vector 的 POD 结构。结构的成员之一是唯一标识符。
为了能够使用 std::binary_search 我必须为结构实现 operator<。按照这里的指导方针,我正在为 ==、!=、<、>、>= 和 <= 编写完整的重载集。
这提出了一个我不知道如何处理的问题。向量将按我分配给每个结构的唯一 ID 排序。如果两个结构具有相同的标识符,则它们是相同的。但是,在我看来,如果两个结构具有相同的标识符但其他成员中的数据不同,则可能会出现这种情况。
这不应该发生。然后让比较运算符检查其余字段并在它们不同但 ID 相同时抛出异常是否合适?什么样的例外最合适?