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