C ++ STL中的多集crbegin()和crend()函数

在本文中,我们将讨论C ++ STL中multiset::crbegin()和multiset::crend()函数的工作原理,语法和示例。

什么是C ++ STL中的多重集?

多重集是类似于集合容器的容器,这意味着它们以键的形式(类似于集合)以特定顺序存储值。

在多集中,将值标识为与集相同的键。多重集和集合之间的主要区别在于,集合具有不同的键,这意味着没有两个键是相同的,在多重集中可以有相同的键值。

多集键用于实现二进制搜索树。

什么是multiset::crbegin()?

multiset::crbegin()函数是C ++ STL中的内置函数,在头文件中定义。crbegin()表示常量反向开始函数,表示此函数返回指向多集容器最后一个元素的常量迭代器。此函数是multiset::cbegin()的反向版本

常量迭代器只能用于在多集容器中进行迭代,而不能在多集容器中进行更改。

语法

ms_name.crbegin();

参数

该函数不接受任何参数。

返回值

此函数返回一个常量迭代器,该迭代器指向容器的最后一个元素。

示例

输入值

std::multiset<int> mymultiset = {1, 2, 2, 3, 4};
mymultiset.crbegin();

输出结果

4

示例

#include <bits/stdc++.h>
using namespace std;
int main(){
   int arr[] = {10, 20, 30, 40, 50, 60};
   multiset<int> check(arr, arr + 6);
   cout<<"First element fetched using crbegin() function: "<<*(check.crbegin()) << endl;
   for(auto i = check.crbegin(); i!= check.crend(); i++)
      cout << *i << " ";
   return 0;
}

输出结果

First element fetched using crbegin() function: 60
60 50 40 30 20 10

什么是multiset::crend()?

multiset::crend()函数是C ++ STL中的内置函数,在<set>头文件中定义。crend()表示常量结束函数,表示此函数返回常量迭代器,该常量迭代器指向多集容器的第一个元素之前的元素。这是cend()

常量迭代器只能用于在多集容器中进行迭代,而不能在多集容器中进行更改。

语法

ms_name.crend();

参数

该函数不接受任何参数。

返回值

此函数返回一个常量迭代器,该迭代器指向比第一个容器早的元素。

示例

输入值

std::multiset<int> mymultiset = {1, 2, 2, 3, 4};
mymultiset.crend();

输出结果

error

示例

#include <bits/stdc++.h>
using namespace std;
int main(){
   int arr[] = {10, 20, 30, 40, 50, 60};
   multiset<int> check(arr, arr + 6);
   cout<<"Elements in the list are: ";
   for(auto i = check.crbegin(); i!= check.crend(); i++)
      cout << *i << " ";
   return 0;
}

输出结果

Elements in the list are: 60 50 40 30 20 10