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