我的C++標準文檔副本文檔標準排序功能。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)的要求。該類型的*首先應滿足MoveConstructible(表20)的 要求和MoveAssignable
的
確定 - 但應該不是也需要的元素中也具有可比性?
我期望的「要求」的條款,包括像:
「從提領該RandomAccessIterator
應滿足的LessThanComparable
要求的結果類型。」
或者更好的
「iterator_traits<RandomAccessIterator>::value_type
應滿足小於關係的要求。」
因爲24.4.1部分說,「這是必需的,如果Iterator
是一個迭代的類型,類型... iterator_traits<Iterator>::value_type
定義」
爲什麼不包含這樣的語言。當然,排序功能不能對無法比較的元素進行排序。
這不是涵蓋[alg.sorting]/1-4嗎? – dyp
@TonyTheLion「上述規則意味着RandomAccessIterator也實現'LessThanComparable'。」看起來像。 – JAB
@TonyTheLion @JAB比較* iterators *與比較'* i'類型的對象不同,其中'i'是一個迭代器。 – dyp