Ded*_*tor 3

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

23.2.1 一般容器要求[container.requirements.general] 13 表 98 列出了为某些类型的容器提供的操作,但没有列出为其他类型的容器提供的操作。除非另有说明,为其提供所列操作的那些容器应实现表 98 中描述的语义。

该表包含:

a < b
可转换为bool
lexicographical_compare(a.begin(),a.end(),b.begin(),b.end())
pre: < 是为 T 的值定义的。 < 是全序关系。
线性

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

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