C++ forward_list::cbegin() 函数



C++ 的 std::forward_list::cbegin() 函数用于获取指向 forward_list 容器第一个元素的常量迭代器。

如果当前 forward_list 为空,则 cbegin() 函数返回的常量迭代器等于 end() 函数的结果。在 C++ 中,迭代器是一个可以遍历 STL(标准模板库)中元素并访问单个元素的对象。

语法

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

const_iterator cbegin() const;

参数

  • 它不接受任何参数。

返回值

此函数返回指向第一个元素的常量迭代器。

示例 1

如果 forward_list 非空且为 int 类型,则 cbegin() 函数返回指向第一个元素的常量迭代器。

在下面的示例中,我们使用 C++ std::forward_list::cbegin() 函数来获取当前 forward_list {10, 20, 30, 40, 50} 的第一个元素的常量迭代器。

#include<iostream>
#include<forward_list>
using namespace std;
int main(){
   //create a forward_list
   forward_list<int> num_list = {10, 20, 30, 40, 50};
   cout<<"The num_list contents are: "<<endl;
   for(int n : num_list) {
      cout<<n<<endl;
   }
   //using the cbegin() function
   auto it = num_list.cbegin();
   cout<<"The constant iterator to the first element: "<<*it;
}

输出

以下是上述程序的输出:

The num_list contents are: 
10
20
30
40
50
The constant iterator to the first element: 10

示例 2

如果 forward_list 为 char 类型,则此函数返回指向此 forward_list 的第一个 char 元素的常量迭代器。

以下是 C++ d::forward_list::cbegin() 函数的另一个示例。在这里,我们创建一个名为 char_list 的 forward_list(类型为 char),其内容为 {'A', 'B', 'C', 'D', 'E'}。然后,使用 cbegin() 函数,我们尝试获取此 forward_list 的第一个元素的常量迭代器。

#include<iostream>
#include<forward_list>
using namespace std;
int main() {
   //create a forward_list
   forward_list<char> char_list = {'A', 'B', 'C', 'D', 'E'};
   cout<<"The char_list contents are: "<<endl;
   for(char c : char_list) {
      cout<<c<<endl;
   }
   //using the cbegin() function
   auto it = char_list.cbegin();
   cout<<"The constant iterator to the first element: "<<*it;
}

输出

这将生成以下输出:

The char_list contents are: 
A
B
C
D
E
The constant iterator to the first element: A

示例 3

使用 for 循环以及 cbegin() 函数遍历容器并获取从第一个元素开始的所有元素的常量迭代器。

在下面的程序中,我们创建一个名为 colors 的 forward_list(类型为 string),其内容为 {"Red", "Green", "Blue", "Black"}。然后,使用 for 循环以及 cbegin() 函数遍历此 forward_list 并获取从第一个元素开始的所有元素的常量迭代器。

#include<iostream>
#include<forward_list>
using namespace std;
int main(){
   //create a forward_list
   forward_list<string> colors = {"Red", "Green", "Blue", "Black"};
   cout<<"The iterator of all the elements are: "<<endl;
   for(auto it = colors.cbegin(); it != colors.end(); it++){
      cout<<*it<<endl;
   }
}

输出

上述程序产生以下输出:

The iterator of all the elements are: 
Red
Green
Blue
Black

示例 4

如果 forward_list 为空,则返回的常量迭代器等于 end() 函数的结果。

#include<iostream>
#include<forward_list>
using namespace std;
int main(){
   //create a forward_list
   forward_list<string> fruits = {};
   cout<<"The size of this forward_list is: "<<endl;
   cout<<distance(fruits.begin(), fruits.end())<<endl;
   cout<<"The iterator of all the elements are: "<<endl;
   //using the cbegin() function
   auto it = fruits.cbegin();
   cout<<*it<<endl;
}

输出

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

The size of this forward_list is: 
0
The iterator of all the elements are: 
Segmentation fault
广告