函数功能:将序列[first,last)的元素在原容器中颠倒重排,包含在algorithm库中。
- reverse()函数无返回值,时间复杂度O(n)。
- 可以看到函数中是last是先减一。应当理解的是vector.end()是指向数组最后一个元素后面的位置。
- reverse(v.begin(), v.end())即可实现全数组的反转。
reverse的random access iterator版
template<class RandomAccessIterator>
void __reverse(RandomAccessIterator first, RandomAccessIterator last, random_access_iterator_tag)
{
while(first < last)
iter_swap(first++, --last);
}
运用实例:
Leetcode 969. Pancake Sorting
参考书籍:
- 《STL源码剖析》