C++标准排序文档问题
C++ standard sort documentation issue
我的C++标准文档副本记录了标准排序函数。
25.4.1.1分拣
template<class RandomAccessIterator>
void sort(RandomAccessIterator first, RandomAccessIterator last);
...
Effects: Sorts the elements in the range [first,last).
要求:RandomAccessIterator应满足ValueSwappable(17.6.3.2)。*的类型首先应满足MoveConstructable(表20)和MoveAssignable 的要求
好吧,但它不应该也要求所提到的元素也具有可比性吗?
我希望"Requires"条款包括这样的内容:
"取消引用RandomAccessIterator
所产生的类型应满足LessThanComparable
的要求。"
或者更好的
"iterator_traits<RandomAccessIterator>::value_type
应满足LessThanComparable的要求。"
由于24.4.1部分规定"如果Iterator
是迭代器的类型,则需要定义类型…iterator_traits<Iterator>::value_type
"
为什么不包括这样的语言。sort函数当然不能对不能比较的元素进行排序。
- 好吧,但它不应该也要求所提到的元素也具有可比性吗
如果你在标准中向上滚动,你会发现排序算法的这些要求(根据§25.4):
25.4中的所有操作都有两个版本:一个版本需要Compare类型的函数对象和使用运算符<的函数对象;。
这意味着标准中已经强制要求类型使用operator<
或自定义比较器。
自定义比较器具有以下要求:
Compare
是一个函数对象类型(20.8)应用于类型为Compare
的对象的函数调用操作,当上下文转换为bool
(4),如果第一个参数为true的值小于秒,否则为false。Compare
组件用于假设排序关系的算法。是的假设comp不会通过取消引用的迭代器。
- 正在查找文档以获得PS4平台的C++中的设备信息
- 如何在文档文件夹中创建目录
- 当Microsoft文档仅包含 C# 示例时,如何查找 C++ 包含文件名
- 通过构造函数创建一些值并尝试添加到文档中使用 rapidjson 不起作用
- 关于类的 Python 文档 - 对C++的引用不正确
- C++/autoconf 等效于文档库要求.txt的要求是什么?
- mbed:使用 USB 文档库编译会导致错误
- C++ VISUAL STUDIO:GLFWwindow没有初始化,即使它是在文档中编写的并且以前工作过
- 使用 yaml-cpp 更新 YAML 文档的节点和值
- 在加载 MSHTML 文档之前从 MSHTML 文档中删除无效的 URL
- 如何在C++中表示JSON文档的递归对象结构?
- 如何查找 Redshift Maya API 文档?
- 如何使用值模板编写文档测试用例?
- 如何使用 Gradle DSL(领域特定语言)上的文档?
- ncurses 找不到任何关于cchar_t的文档
- 提取狮身人面像文档中的C++代码片段
- 关于 API 文档和设备操作 在助手-sdk-cpp 上
- 如何搜索提升文档?
- 使用 mongo c++ 驱动程序查询嵌套的 BSON 文档
- SetWindowsHookEx 问题的文档