std::set::equal_range


pair<const_iterator,const_iterator> equal_range (const value_type& val) const;
pair<iterator,iterator> equal_range (const value_type& val);

set 类模板中的公共成员函数。 返回值匹配给定搜索值的元素组成的范围。

因为 set 容器中所有元素都是唯一的,所以返回的范围中最多只有一个元素。

如果没有发现匹配的元素,返回范围的长度将为 0,且首尾两个迭代器都将指向按内部比较对象的排序规则排在 val 之后的第一个元素。

如果传递给容器内部比较对象的两个元素使得比较对象返回 false,且该特性是自反的(Reflexive)(即两个参数不管以什么顺序传递给比较对象,都返回 false),那么两个主键等价。



val:需要被搜索的值。

成员类型 val_type 是存储在当前容器中的元素的类型,作为 set 实例化时第一个模板参数(T)的别名而存在。

返回

返回一个二元组

该二元组由两个指向容器中元素的迭代器组成,第一个迭代器与 set::lower_bound 传入 val 返回的迭代器相同,第二个迭代器与 set::upper_bound 传入 val 返回的迭代器相同。

如果 set 对象是 const 限定的,那么函数返回的二元组由 const_iterator 组成,否则返回的二元组由 iterator 组成。

成员类型 iterator 及 const_iterator 是指向容器中元素的双向迭代器的类型。


#include <set>
#include <iostream>

namespace ClassFoo{
void SetEqualRangeExample1() {
    using namespace std;
    set<int> foo1;
    pair<set<int>::iterator,set<int>::iterator> it;

    foo1.insert(1);
    foo1.insert(3);
    foo1.insert(6);
    foo1.insert(9);
    foo1.insert(12);

    it = foo1.equal_range(6);
    cout << "foo1.equal_range(6):"
        << *(it.first) << " " << *(it.second) << endl ;

    it = foo1.equal_range(7);
    cout << "foo1.equal_range(7):"
        << *(it.first) << " " << *(it.second) << endl ;
}
}
int main( )
{
    ClassFoo::SetEqualRangeExample1();
    return 0;
}

输出

foo1.equal_range(6):6 9
foo1.equal_range(7):9 9​



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值