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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值