gpt4 book ai didi

c++ - std::set::operator<(const std::set&) 不使用 C() 但 std::less()

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:40:26 24 4
gpt4 key购买 nike

无法删除我自己的问题,所以改写它...

最佳答案

这实际上不是实现中的错误,尽管它可以说是标准中的错误:

23.2.1 General container requirements [container.requirements.general] 13 Table 98 lists operations that are provided for some types of containers but not others. Those containers for which the listed operations are provided shall implement the semantics described in Table 98 unless otherwise stated.

表格包含:

a < b
convertible to bool
lexicographical_compare(a.begin(),a.end(),b.begin(),b.end())
pre: < is defined for values of T. < is a total ordering relationship.
linear

虽然后面的部分指定 std::set提供比较运算符,不幸的是它没有改变上面给出的定义。

顺便说一句,std::lexicographical_compare实际上并没有使用 std::less , 但使用 <直接地。但这并不重要。

关于c++ - std::set<K, C>::operator<(const std::set<K, C>&) 不使用 C() 但 std::less(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28640600/

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