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