reverse函数:反转容器内容

来源:互联网 发布:java session的用法 编辑:程序博客网 时间:2024/06/18 18:24

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、复杂度
循环交换首尾元素。因此复杂度是线性的,并且循环半个数组长度。




原创粉丝点击