C++ vector::crend() 函数



C++ vector::crend() 用于获取从反向结尾开始的向量的第一个元素。它返回一个指向向量第一个元素之前元素(即反向结尾)的常量反向迭代器。crend() 函数的时间复杂度为常数。

返回的 const_reverse_iterator 是一个指向常量内容(向量)的迭代器,它可以像迭代器一样增加或减少。但是,它不能用于更新或修改它指向的向量内容。

语法

以下是 C++ vector::crend() 函数的语法:

const_reverse_iterator crend() const noexcept;

参数

它不包含任何参数。

示例 1

让我们考虑以下示例,我们将使用 crend() 函数。

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

int main(void){
   vector<int> v = {1, 2, 3, 4, 5};
   for (auto it = v.crend() - 1; it >= v.crbegin(); --it)
   cout << *it << endl;
   return 0;
}

输出

编译并运行上述程序时,将产生以下结果:

1
2
3
4
5

示例 2

在下面的示例中,我们将使用 crend() 函数并访问向量中的第一个元素。

#include <iostream>  
#include<vector>  
using namespace std;
  
int main(){  
   vector<string>car{"RX100","BMW","AUDI","YAMAHA"};  
   vector<string>::const_reverse_iterator x=car.crend()-1;  
   std::cout<< *x;  
   return 0;
} 

输出

运行上述程序后,将产生以下结果:

RX100

示例 3

考虑以下示例,我们将使用 push_back() 插入元素并使用 crend() 函数获取第一个元素。

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

int main(){
   vector<int> num;
   num.push_back(2);
   num.push_back(4);
   num.push_back(6);
   vector<int>::const_reverse_iterator x;
   x = num.crend()-1;
   cout << "The first element is: " << *x << endl;
   return 0;
}

输出

运行上述程序后,将产生以下结果:

The first element is: 2

示例 4

查看以下示例,当我们尝试使用 crend() 函数修改值时,它会抛出错误。

#include <iostream>  
#include<vector>  
using namespace std;
  
int main(){  
   vector<int> myvector{111,222,333,444};  
   vector<int>::const_reverse_iterator x=myvector.crend()-1;  
   *x=8;  
   cout<<*x;  
   return 0;  
}

输出

运行上述程序后,将产生以下结果:

Main.cpp:8:5: error
广告