관리 메뉴

Kim's Programming

Algorithm - equal_range() 본문

STL - Algorithm/Algorithm - Binary Search

Algorithm - equal_range()

Programmer. 2017. 6. 30. 01:12

원형)


1
2
3
4
5
6
7
8
9
10
//기본형
template <class ForwardIterator, class T>
  pair<ForwardIterator,ForwardIterator>
    equal_range (ForwardIterator first, ForwardIterator last, const T& val);
 
//사용자 정의형
template <class ForwardIterator, class T, class Compare>
  pair<ForwardIterator,ForwardIterator>
    equal_range (ForwardIterator first, ForwardIterator last, const T& val,
                  Compare comp);
cs



의미)


[Iterator first, Iterator last)사이에 있는 모든 데이터들에 대한 subrange를 리턴합니다.



소스)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <algorithm>
#include <vector>
 
void print(std::vector<int> Target_Vector)
{
    for (std::vector<int>::iterator IterPos = Target_Vector.begin(); IterPos != Target_Vector.end(); ++IterPos)
        std::cout << *IterPos << " ";
    std::cout << std::endl;
}
void main() 
{
    std::vector<int> Vector = { 5,10,15,20,25,30 };
    std::pair<std::vector<int>::iterator, std::vector<int>::iterator> Pair;
    Pair = std::equal_range(Vector.begin(), Vector.end(), 5);
    print(Vector);
    std::cout << "Pair First -->" << *Pair.first << std::endl;
    std::cout << "Pair Second -->" << *Pair.second << std::endl;
}
cs



내용)


first로 lower_bound(x,y,z)의 리턴값을, second로 upper_bound(x,y,z)의 리턴값을 가진 pair를 리턴합니다.



결과)




'STL - Algorithm > Algorithm - Binary Search' 카테고리의 다른 글

Algorithm - binary_search()  (0) 2017.06.30
Algorithm - upper_bound()  (0) 2017.06.30
Algorithm - lower_bound()  (0) 2017.06.30