Defined in header <algorithm>
template< class BidirIt > void reverse( BidirIt first, BidirIt last ); |
Reverses the order of the elements in the range [first, last)
Behaves as if applying std::iter_swap to every pair of iterators first+i, (last-i) - 1
for each non-negative i < (last-first)/2
源码:
template<class BidirIt> void reverse(BidirIt first, BidirIt last) { while ((first != last) && (first != --last)) { std::iter_swap(first++, last); } }
#include <vector>
#include <iostream>
#include <algorithm>
int main()
{
std::vector<int> v({1,2,3});
std::reverse(std::begin(v), std::end(v));
std::cout << v[0] << v[1] << v[2] << '\n';
int a[] = {4, 5, 6, 7};
std::reverse(&a[0], &a[4]);
std::cout << a[0] << a[1] << a[2] << a[3] << '\n';
}
output:
321 7654