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


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

什么是 C++ STL 中的 multiset?

Multiset 与 set 容器类似,这意味着它们像 set 一样以键的形式存储值,并按照特定顺序排列。

在 multiset 中,值与 set 一样被标识为键。multiset 和 set 之间的主要区别在于,set 的键是唯一的,这意味着没有两个键相同,而在 multiset 中可以存在相同的键值。

Multiset 键用于实现二叉搜索树。

什么是 multiset::begin()?

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

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

由于 multiset 容器按升序存储值,因此 begin() 指向根据排序标准确定的容器的第一个元素。

语法

ms_name.begin();

参数

此函数不接受任何参数。

返回值

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

示例

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> 头文件中定义。

此函数返回一个迭代器,该迭代器指向 multiset 容器中末尾之后的那个位置。

末尾之后的元素是指 multiset 容器最后一个元素之后的元素。简而言之,它不指向 multiset 容器中的任何特定元素。此函数通常与 begin() 一起使用以给出 multiset 容器的范围。

语法

ms_name.end();

参数

此函数不接受任何参数。

返回值

此函数返回一个迭代器,该迭代器指向与其关联的 multiset 容器的末尾元素之后的位置。

示例

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

更新于:2020年3月23日

2K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告