C++ vector::cbegin() 函数



C++ vector::cbegin() 是 C++ 中的一个内置函数,它返回一个指向容器中第一个元素的常量迭代器。它返回一个 const_iterator,一个指向常量内容(vector)的迭代器,const_iterator 可以像迭代器一样增加或减少,但它们不能用于更新或修改它们所引用的 vector 内容。cbegin() 函数的时间复杂度是常数。

const_iterator 与 iterator 的区别在于它不能用于修改它指向的内容,即使 vector 元素本身不是常量。

语法

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

const_iterator cbegin() const noexcept;

参数

它不包含任何参数。

示例 1

让我们考虑以下示例,我们将使用 cbegin() 函数并检索输出。

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

int main (){
   vector<int> tutorial{12,23,34,45,56};
   vector<int>::const_iterator i;
   for(i = tutorial.cbegin(); i != tutorial.cend(); ++i)
      cout<<*i<<" ";
   return 0;
}

输出

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

12 23 34 45 56 

示例 2

在以下示例中,我们将使用 push_back() 函数以及 cbegin() 函数。

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

int main(){
   vector<string> course;
   course.push_back("HTML");
   course.push_back("JAVA");
   course.push_back("SQL");
   course.push_back("SCRIPT");
   cout << "Courses are:" << endl;
   for (auto tp = course.cbegin();
      tp != course.end();
      ++tp)
      cout << *tp << endl;
   return 0;
}

输出

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

Courses are:
HTML
JAVA
SQL
SCRIPT

示例 3

以下是另一种场景,用于检查 cbegin() 函数的使用情况。

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

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

输出

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

TP TutorialsPoint Tutorix

示例 4

考虑以下示例,它将在使用 cbegin() 函数修改值时抛出错误,这是不允许的。

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

int main(){
   vector<int> tutorial{2,4,6,8};
   vector<int>::const_iterator i=tutorial.cbegin()+2;
   *i=5;
   std::cout<<*i;
   return 0;
}

输出

当我们执行上述程序时,将产生以下结果:

main.cpp:8:7: error
广告