C ++ STL中的多集begin()和end()函数

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

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

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

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

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

什么是multiset::begin()?

multiset::begin()函数是C ++ STL中的内置函数,该函数在<set>头文件中定义。

该函数返回一个迭代器,该迭代器指向多集容器中的第一个元素。

当多集容器按升序存储值时,begin()根据排序标准,这些点指向作为容器的第一个元素的元素。

语法

ms_name.begin();

参数

该函数不接受任何参数。

返回值

该函数返回一个迭代器,该迭代器指向与其关联的多集容器的第一个元素。

示例

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

示例

#include <bits/stdc++.h>
using namespace std;
int main() {
   int arr[] = {2, 4, 1, 3, 8, 5, 6};
   multiset<int> check(arr, arr + 7);
   cout<<"List is : ";
   for (auto i = check.begin(); i != check.end(); i++)
      cout << *i << " ";
   cout<<"\nStarting Element is : "<<*(check.begin());
   return 0;
}

输出结果

如果我们运行上面的代码,它将生成以下输出-

List is : 1 2 3 4 5 6 8
Starting Element is : 1

什么是multiset::end()

multiset::end()函数是C ++ STL中的内置函数,在<set>头文件中定义。

此函数返回一个迭代器,该迭代器指向多集容器中的过去到结束位置。

从头到尾的元素是在多集容器的最后一个元素之后的元素。简而言之,它没有指向多集容器的任何特定元素。通常使用此函数begin()来给出多集容器的范围。

语法

ms_name.end();

参数

该函数不接受任何参数。

返回值

该函数返回一个迭代器,该迭代器指向与其关联的多集容器的结束元素。

示例

Input: std::multiset<int> mymultiset = {1, 2, 2, 3, 4};
   for( std::multiset<int>::iterator it=mymultiset.begin(); it!=mymultiset.end(); ++it )
Output: 1 2 2 3 4

示例

#include <bits/stdc++.h>
using namespace std;
int main() {
   int arr[] = {2, 4, 1, 3, 8, 5, 6};
   multiset<int> check(arr, arr + 7);
   cout<<"List is : ";
   for (auto i = check.begin(); i != check.end(); i++)
      cout << *i << " ";
   return 0;
}

输出结果

如果我们运行上面的代码,它将生成以下输出-

List is : 1 2 3 4 5 6 8