@songying
2019-03-06T13:06:37.000000Z
字数 1233
阅读 1079
STL
_if
后缀对于某算法有两个形式,参数个数相同。无后缀的哪个要求传入的是一个值,有后缀的那个要求函数或function object。
举例: find() 来查找具有某值的元素,而find_if() 接受一个被当做查找准则的函数或function object,查找第一个满足该准则的元素
_copy
后缀该后缀表示在此算法中元素不只被操作,还会被复制到另一区间。
操作 | 说明 |
---|---|
void sort(RandomAccessIterator beg, RandomAccessIterator end) |
使用 < 对区间对区间[beg,end)内的所有元素排序(降序) |
void sort(RandomAccessIterator beg, RandomAccessIterator end, BinaryPredicate op) |
使用 binary predicate op(elem1, elem2) 作为排序准则对区间[beg,end)内的所有元素排序 |
void stable_sort(RandomAccessIterator beg, RandomAccessIterator end) |
使用 < 对区间对区间[beg,end)内的所有元素排序 |
void stable_sort(RandomAccessIterator beg, RandomAccessIterator end, BinaryPredicate op) |
使用 binary predicate op(elem1, elem2) 作为排序准则对区间[beg,end)内的所有元素排序 |
sort() 保证了很不错的平均效能 nlogn;如果你需要极力避免最差情况,请使用 partial_sort()
或 stable_sort()
。
sort() 的时间复杂度为O(n) - O(logn)
操作 | 说明 |
---|---|
void partial_sort(RandomAccessIterator beg, RandomAccessIterator sortEnd, RandomAccessIterator end) |
以 < 对 区间[beg, end) 内的元素排序,使 [beg,sortEnd) 区间内的元素处于有序状态 |
void partial_sort(RandomAccessIterator beg, RandomAccessIterator sortEnd, RandomAccessIterator end, BinaryPredicate op) |
以 op(elem1,elem2) 对 区间[beg, end) 内的元素排序,使 [beg,sortEnd) 区间内的元素处于有序状态 |