1. 程式人生 > 實用技巧 >C++ reverse函式的用法

C++ reverse函式的用法

逆序(反轉)無論是在 C 或是 C++ 中用的都特別多,常用於陣列,字串,容器等,其本身的函式引數也不復雜。

標準 C 中是沒有recerse()函式的,這是C++的一個新增函式,使用需要包含標頭檔案

#include <algorithm>

reverse 函式用於反轉在 [first,last) 範圍內的順序(左閉右開),reverse()沒有返回值

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

例如,交換 vector 容器中元素的順序

vector<int> v = {5,4,3,2,1};
reverse(v.begin(),v.end());//v的值為1,2,3,4,5

還有 string 類的字串

string str="www.wmathor.com";
reverse(str.begin(),str.end());//str結果為moc.rohtamw.wwww

最後給出函式原型,該函式等價於通過呼叫 iter_swap 來交換元素位置

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