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