reverse函数:反转容器内容

Posted Valineliu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了reverse函数:反转容器内容相关的知识,希望对你有一定的参考价值。

reverse函数可以反转一个容器中的内容,包含在<algorithm>库中。

1、函数原型

reverse函数等同于下面的代码:

template <class BidirectionalIterator> void reverse (BidirectionalIterator first, BidirectionalIterator last)

     while ((first!=last)&&(first!=--last))
     
          std::iter_swap (first,last);
          ++first;
     

reverse函数使用iter_swap来交换两个元素。

2、参数:first、last

first和last是双向迭代器类型,reverse函数反转的范围是[first,last),所以包括first指向的元素,不包括last指向的元素。

3、返回值

reverse函数没有返回值。

4、例子

// 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;


输出:
myvector contains: 9 8 7 6 5 4 3 2 1
5、复杂度 循环交换首尾元素。因此复杂度是线性的,并且循环半个数组长度。

以上是关于reverse函数:反转容器内容的主要内容,如果未能解决你的问题,请参考以下文章

STLreverse函数用法

reverse()函数的使用

给Django中的url起名字

Reverse Words in a String(翻转字符串)

015_内置函数2

JavaScript 19 数组(四)