C++ vector::rend() 函式



C++ vector::rend() 函式返回一個反向迭代器,該迭代器指向向量中第一個元素之前的元素(反向的最後一個元素之後)。當反向迭代器遞增時,它會移動到向量容器的開頭,並以相反的方式進行迭代。

類似於遞增迭代器,遞減反向迭代器會導致向量容器移動到末尾。如果向量物件是 const 限定的,則該函式返回 const_reverse_iterator。如果不是,則返回反向迭代器。rend() 函式的時間複雜度是常數。

語法

以下是 C++ vector::rend() 函式的語法:-

reverse_iterator rend() noexcept;
const_reverse_iterator rend() const noexcept;

引數

它不接受任何型別的引數。

示例 1

讓我們考慮以下示例,我們將使用 reserve() 函式。

#include <iostream>  
#include<vector>  
using namespace std;
  
int main(){  
   vector<int> tutorial{11,22,33,44};  
   vector<int>::reverse_iterator x;  
   for(x=tutorial.rbegin();x!=tutorial.rend();x++)  
      std::cout<< *x<<" ";  
   return 0;  
}  

輸出

當我們編譯並執行上述程式時,它將產生以下結果:-

44 33 22 11

示例 2

考慮另一種情況,我們將採用字串型別並應用 rend() 函式。

#include <iostream>  
#include<vector>  
using namespace std;
  
int main() {  
   vector<string> course{"HTML","SQL","JS","OS"};  
   vector<string>::reverse_iterator x;  
   vector<string>::iterator a;  
   std::cout<<"before using rend():";  
   for(a=course.begin();a!=course.end();a++)  
      cout<<*a<<", ";  
   cout<<'\n';  
   cout<<"after using rend():";  
   for(x=course.rbegin();x!=course.rend();x++)  
      cout<<*x<<", ";  
   return 0;  
}

輸出

執行上述程式後,它將產生以下結果:-

before using rend():HTML, SQL, JS, OS, 
after using rend():OS, JS, SQL, HTML,

示例 3

在以下示例中,我們將使用 push_back() 函式插入元素並應用 rend() 函式。

#include <iostream>  
#include<vector>  
using namespace std;

int main(){
   vector<string> car;
   car.push_back("RS7");
   car.push_back("Q6");
   car.push_back("GLS340D");
   car.push_back("CHERON");
   cout << "\nResult:\n";
   for (auto x = car.rbegin(); x != car.rend(); x++)
      cout << *x << " ";
   return 0;
} 

輸出

當我們執行上述程式時,它將產生以下結果:-

Result:
CHERON GLS340D Q6 RS7
廣告