C++ vector::crbegin() 函数



C++ vector::crbegin() 是 C++ 中的一个内置函数,用于使用 const_reverse_iterator 获取向量的最后一个元素。它返回一个指向向量最后一个元素(即反向开头)的常量反向迭代器。crbegin() 函数的时间复杂度为常数。

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

语法

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

const_reverse_iterator crbegin() const noexcept;

参数

它不包含任何参数。

示例 1

让我们考虑以下示例,我们将使用 crbegin() 函数加 3 来访问向量的第四个元素。

#include <iostream>  
#include<vector>  
using namespace std;
 
int main(){  
   vector<int> myvector{12,23,34,45,56,67};  
   vector<int>::const_reverse_iterator x=myvector.crbegin()+3;  
   cout<<*x;  
   return 0;  
}

输出

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

34

示例 2

在以下示例中,我们将使用 crbegin() 函数并访问向量中的最后一个元素。

#include <iostream>  
#include<vector>  
using namespace std;
  
int main(){  
   vector<string> myvector{"Virat","Yuvraj","Padikkal","MSD"};  
   vector<string>::const_reverse_iterator x=myvector.crbegin();  
   cout<<*x;  
   return 0;
}

输出

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

MSD

示例 3

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

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

int main(){
   vector<int> myvector;
   myvector.push_back(123);
   myvector.push_back(234);
   myvector.push_back(456);
   vector<int>::reverse_iterator x;
   x = myvector.rbegin();
   cout << "The last element is: " << *x << endl;
   return 0;
}

输出

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

The last element is: 456

示例 4

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

#include <iostream>
#include<vector>
using namespace std;
  
int main(){  
   vector<int> myvector{12,23,34,45,56};  
   vector<int>::const_reverse_iterator x=myvector.crbegin();  
   *x=67;  
   cout<<*x;  
   return 0;
} 

输出

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

Main.cpp:8:5: error
广告