由于std::set
是作为二叉树实现的,它如何比较std::string
的不等式?它看起来像a < b && b < a
吗?
是直接使用字符串的长度还是以某种方式对其进行散列? 它是否完全保证字符串的唯一性?
答案 0 :(得分:5)
它只是少做两次 - 左右交换进行第二次比较。如果两者都返回false,则认为字符串相等。
是的,它确实保证了它的成员(包括字符串)的唯一性,只要operator less正在执行它对成员类型的预期(对于字符串当然是正确的,但对于用户可能不是这样) - 定义类型)。
答案 1 :(得分:2)
Py_Finalize
使用std::set
对其键进行排序。这是less
operator<
,它按字典顺序比较字符串。