C++ vector::cend() 函式



C++ vector::cend() 是C++中的內建函式,它返回一個指向容器中最後一個元素之後位置的常量迭代器。不能使用該迭代器修改集合容器中的元素。可以增加或減少迭代器來相應地遍歷集合。cend()函式的時間複雜度是常數。

它返回一個常量迭代器,這意味著它指向常量元素。它的成員函式沒有異常。它的時間複雜度是常數,即 O(1)。由於該方法不會指向最後一個元素,因此必須使用 vector::cend()-1 來獲取它。

語法

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

const_iterator cend() const noexcept;

引數

它不包含任何引數。

示例 1

讓我們考慮下面的示例,我們將使用 cend() 函式並檢索從後到前列印元素的輸出。

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

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

輸出

編譯並執行上面的程式後,將產生以下結果:

5
4
3
2
1

示例 2

在下面的示例中,我們將結合使用 push_back() 函式和 cend() 函式。

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

int main(){
   vector<string> cartoon;
   cartoon.push_back("Ben 10");
   cartoon.push_back("Shinchan");
   cartoon.push_back("Kick Buttowski");
   cartoon.push_back("Ninja Hattori");
   cout << "Cartoons are:" << endl;
   for (auto i = cartoon.cend() - 1;
      i >= cartoon.begin();
      --i)
      cout << *i << endl;
   return 0;
}

輸出

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

Cartoons are:
Ninja Hattori
Kick Buttowski
Shinchan
Ben 10

示例 3

以下是另一個場景,我們將使用字串並檢查 cend() 函式的用法。

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

int main (){
   vector<string> tutorial{"Tutorix","TutorialsPoint","TP"};
   vector<string>::const_iterator i;
   i = tutorial.cend();
   i--;
   cout<<*i<<" ";
   i--;
   cout<<*i<<" ";
   i--;
   cout<<*i<<" ";
   return 0;
}

輸出

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

TP TutorialsPoint Tutorix
廣告