当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ Set equal_range()用法及代码示例


在本文中,我们将讨论 C++ STL 中的 set::equal_range() 函数、它们的语法、工作和返回值。

C++ STL 中的 Set 是什么?

C++ STL 中的集合是容器,它们必须按一般顺序具有唯一元素。集合必须具有唯一的元素,因为元素的值标识了元素。一旦在集合容器中添加了一个值,以后就无法修改,尽管我们仍然可以将这些值删除或添加到集合中。集合用作二叉搜索树。

设置内容::equal_range()

equal_range() 函数是 C++ STL 的内置函数,定义在头文件中。此函数返回包含作为函数参数传递的值的集合容器的范围。该集合包含所有唯一值,因此找到的范围内的等效值将是单个值。如果容器中不存在该值,则范围将为零,两个迭代器都指向第一个位置。

用法

Set1.equal_range(const type_t& value);

参数

该函数接受一个参数,即要查找的元素。

返回值

此函数返回对,或者我们可以说迭代器范围从容器的下限开始,直到要在容器中找到的元素。

示例

Input:set<int> myset = {10, 20, 30, 40};
Output:lower bound of 30 is 30

示例

#include <bits/stdc++.h>
using namespace std;
int main(){
   set<int> mySet;
   mySet.insert(10);
   mySet.insert(20);
   mySet.insert(30);
   mySet.insert(40);
   mySet.insert(50);
   cout<<"Elements before applying range() Function:";
   for (auto i = mySet.begin(); i != mySet.end(); i++)
      cout << *i << " ";
   auto i = mySet.equal_range(30);
   cout<<"\nlower bound of 30 is "<< *i.first;
   cout<<"\nupper bound of 30 is "<< *i.second;
   i = mySet.equal_range(40);
   cout<<"\nlower bound of 40 is " << *i.first;
   cout<<"\nupper bound of 40 is " << *i.second;
   i = mySet.equal_range(10);
   cout<<"\nlower bound of 10 is " << *i.first;
   cout<<"\nupper bound of 10 is " << *i.second;
   return 0;
}

输出

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

Elements before applying range() Function:10 20 30 40 50
lower bound of 30 is 30
upper bound of 30 is 40
lower bound of 40 is 40
upper bound of 40 is 50
lower bound of 10 is 10
upper bound of 10 is 20

相关用法


注:本文由纯净天空筛选整理自Sunidhi Bansal大神的英文原创作品 Set equal_range() function in C++ STL。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。