📜  C++ STL-algorithm.equal_range()函数

📅  最后修改于: 2020-10-17 06:26:34             🧑  作者: Mango

C++ STL algorithmequal_range()

C++ STL algorithm.equal_range()函数是二进制搜索的版本。此函数用于返回子范围的下限和上限,该子范围包括与[first,last)范围内的val等效的所有元素。

其中子范围是由两个迭代器定义的,一个指向不小于val的第一个元素,另一个指向大于val的第一个元素。

  • 第一个版本使用运算符<比较元素,第二个版本使用给定的比较函数,即comp。
  • 为了与val比较,必须对范围[first,last)进行分区,即,它必须满足以下所有条件:
    • 关于元素
    • 关于!(val
    • 对于所有元素,如果element

句法

default (1)      template 
                       pair
                         equal_range (ForwardIterator first, ForwardIterator last, const T& val);

custom (2)     template 
                      pair
                       equal_range (ForwardIterator first, ForwardIterator last, const T& val,
                          Compare comp); 

参数

first:指向要搜索范围内第一个元素的前向迭代器。

last:一个正向迭代器,指向要搜索范围内的过去最后一个元素。

comp:用户定义的二进制谓词函数,该函数接受两个参数,如果两个参数顺序正确,则返回true,否则返回false。它遵循严格的弱排序来对元素进行排序。