reverse function: reverse the container contents

The reverse function can reverse the contents of a container, included in the algorithm library.
1. Function prototype

The reverse function is equivalent to the following code:

template <class BidirectionalIterator> void reverse (BidirectionalIterator first, BidirectionalIterator last)  
{  
     while ((first!=last)&&(first!=--last))  
     {  
          std::iter_swap (first,last);  
          ++first;  
     }  
}  

The reverse function uses iter_swap to swap two elements.

2. Parameters: first, last

First and last are bidirectional iterator types, and the reverse range of the reverse function is [first, last), so the element pointed to by first is included, but the element pointed to by last is not included.

3. Return value

The reverse function has no return value.

4. Examples

// reverse algorithm example  
#include <iostream>      
// std::cout  
#include <algorithm>     
// std::reverse  
#include <vector>        
// std::vector  

int main () {  
    std::vector<int> myvector;  
    // set some values:  
    for (int i=1; i<10; ++i) myvector.push_back(i);   // 1 2 3 4 5 6 7 8 9  
    std::reverse(myvector.begin(),myvector.end());    // 9 8 7 6 5 4 3 2 1  
    // print out content:  
    std::cout << "myvector contains:";  
    for (std::vector<int>::iterator it=myvector.begin(); it!=myvector.end(); ++it)  
        std::cout << ' ' << *it;  
    std::cout << '\n';  
    return 0;  
}  

output


myvector contains: 9 8 7 6 5 4 3 2 1

5. Complexity
Circular exchange of the first and last elements. So the complexity is linear and loops half the array length.

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326398515&siteId=291194637