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
广告