C++ Algorithm equal_range()C++ Algorithm equal_range() function is the version of binary search. This function is used to return the lower bound and upper bound of the sub range that includes all the elements equivalent to val in the range [first, last). Where sub range is defined by two iterators, one pointing to the first element that is not less than val and another pointing to the first element greater than val.
SyntaxParameterfirst: A forward iterator pointing to the first element in the range to be searched. last: A forward iterator pointing to the past last element in the range to be searched. comp: A userdefined binary predicate function that accepts two arguments and returns true if the two arguments are in order otherwise, it returns false. It follows the strict weak ordering to order the elements. val: A value of the upper bound to compare the elements in the range. Return valueIt returns two iterators, one pointing to the first element that is not less than val and another pointing to the first element greater than val. If no such element is found then it returns last. ComplexityOn average, complexity is logarithmic in the distance between first and last: performs up to 2*log2 (N) + 1 element comparisons Where N = last  first. Data racesThe object in the range [first, last) are accessed. ExceptionsThis function throws an exception if either an element comparison or an operation on iterator throws an exception. Please note that invalid parameters cause an undefined behavior. Example 1Let's see the simple example to demonstrate the use of equal_range(): Output: Lower Bound of 3 is: 3 Upper Bound of 3 is: 4 Example 2Let's see another simple example to compare the elements using operator<: Output: B C D In the above example, operator < is used to compare the elements and returns all the elements in the range which is equal to 2. Example 3Let's see another simple example to compare the elements using comparison function: Output: B C D Example 4Let's see another simple example: Output: Here are the contents of v: 2 3 5 6 7 7 7 8 9 10 Lower bound of 3 in v = 3 Upper bound of 3 in v = 5 Lower bound of 4 in v = 5 Upper bound of 4 in v = 5 Lower bound of 5 in v = 5 Upper bound of 5 in v = 6 Lower bound of 7 in v = 7 This is the first of the three 7's, since the value before this 7 is 6. Upper bound of 7 in v = 8 Lower bound of 0 in v = 2 Upper bound of 0 in v = 2 Note that both the lower and upper bound locations of 15 are the end (onepastthelast) vector position.
Next TopicC++ Algorithm
