C++ STL 中的 set::cbegin() 和 set::cend() 函数


在本文中,我们将讨论 C++ STL 中的 set::cend() 和 set::cbegin() 函数,包括它们的语法、工作原理以及返回值。

什么是 C++ STL 中的 Set?

C++ STL 中的 Set 是一种容器,它必须包含按一般顺序排列的唯一元素。Set 必须包含唯一元素,因为元素的值标识了该元素。一旦将一个值添加到 Set 容器中,之后就不能修改它,尽管我们仍然可以从 Set 中删除或添加值。Set 用作二叉搜索树。

什么是 set::cbegin()?

cbegin() 函数是 C++ STL 中的一个内置函数,它在头文件中定义。此函数返回一个常量迭代器,该迭代器指向 Set 容器中的第一个元素。由于 Set 容器中的所有迭代器都是常量迭代器,因此它们不能用于修改内容,我们只能使用它们通过增加或减少迭代器来遍历 Set 容器中的元素。

语法

constant_iterator name_of_set.cbegin();

参数

This function does not accept any parameter.

返回值

此函数返回一个 constant_iterator,它指向序列的末尾。

示例

Input: set<int> set_a = {18, 34, 12, 10, 44};
   set_a.cbegin();
Output: Beginning element in the set container: 10

示例

实时演示

#include <iostream>
#include <set>
using namespace std;
int main (){
   set<int> set_a = {18, 34, 12, 10, 44};
   cout << "Beginning element in the set container: ";
   cout<< *(set_a.cbegin());
   return 0;
}

输出

如果我们运行以上代码,则将生成以下输出:

Beginning element in the set container: 10

示例

实时演示

#include <iostream>
#include <set>
using namespace std;
int main (){
   set<int> set_a = {18, 34, 12, 10, 44};
   cout << "set_a contains:";
   for (auto it=set_a.cbegin(); it != set_a.cend(); ++it)
      cout << ' ' << *it;
   cout << '\n';
   return 0;
}

输出

如果我们运行以上代码,则将生成以下输出:

set_a contains: 10 12 18 34 44

什么是 set::cend()?

cend() 函数是 C++ STL 中的一个内置函数,它在头文件中定义。此函数返回一个常量迭代器,该迭代器指向 Set 容器中最后一个元素之后的元素。由于 Set 容器中的所有迭代器都是常量迭代器,因此它们不能用于修改内容,我们只能使用它们通过增加或减少迭代器来遍历 Set 容器中的元素。

语法

constant_iterator name_of_set.cend();

参数

此函数不接受任何参数。

返回值

此函数返回一个 constant_iterator,它指向序列的末尾。

示例

Input: set<int> set_a = {18, 34, 12, 10, 44};
set_a.end();
Output: Past to end element: 5

set::cend() 与 cbegin() 或 begin() 一起使用以遍历整个 Set,因为它指向容器中最后一个元素之后的元素。

示例

实时演示

#include <iostream>
#include <set>
using namespace std;
int main (){
   set<int> set_a = {18, 34, 11, 10, 44};
   cout << "Past to end element: ";
   cout<< *(set_a.cend());
   return 0;
}

输出

如果我们运行以上代码,则将生成以下输出:

Past to end element: 5
We will get a random value

示例

实时演示

#include <iostream>
#include <set>
using namespace std;
int main (){
   set<int> set_a = {18, 34, 12, 10, 44};
   cout << " set_a contains:";
   for (auto it= set_a.cbegin(); it != set_a.cend(); ++it)
   cout << ' ' << *it;
   cout << '\n';
   return 0;
}

输出

如果我们运行以上代码,则将生成以下输出:

set_a contains: 10 12 18 34 44

更新于: 2020-03-05

182 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告