방프리

Effective STL 이해하지 못한 항목 - 3 본문

C++/EffectiveSTL

Effective STL 이해하지 못한 항목 - 3

방프리 2020. 1. 19. 04:33

항목 45. count, find, binary_search, lower_bound, upper_bound 그리고 equal_range를 제대로 파악해두자

 

(1). count : 작업 대상이 정렬되어 있지 않았을 때 사용합니다.

작업 후 true는 양수, false는 0으로 해석이 가능하며 작업이 시작되면 원하는 대상을 찾아도 범위 끝까지 갑니다.

(2). find : 범위의 접근자를 지정해주어야 한다는 단점이 있지만 요소를 찾으면 바로 실행을 중단합니다.

객체의 존재 여부 뿐만 아니라 객체 자체에 대해 알고 싶을 때 사용합니다. 

(3). binary_search : 객체가 존재하는지 여부에 대해서만 확인합니다. 반환값은 bool 입니다. 

(4). lower_bound : 원하는 값을 가진 객체의 첫째 사본 아니면 그 값이 삽입될 적당한 위치를 가리키는 반복자를

반환합니다. 하지만 이 경우엔 상등성 검사를 하게 되지요.

lower_bound는 동등성을 이용해 탐색하기 때문에 그것에 대한 내용은 프로그래머가 직접 해주어야 합니다. 

(5). equal_range : 반복자 쌍으로 구성된 pair 객체를 반환합니다. 찾고 싶은 객체와 동등한 값의 범위를 지정하는

두 개의 반복자를 내어주는 알고리즘입니다.

equal_range의 반환값은 두 가지의 중요한 의미를 가지고 있는데

첫 번째는 두 반복자가 같으면 그 범위 안에 아무 것도 없다는 뜻입니다.

두 번째로는 두 반복자 사이의 거리를 국하면 범위 내의 객체의 개수가 나옵니다.

 

'C++ > EffectiveSTL' 카테고리의 다른 글

Effective STL 이해하지 못한 항목 - 4  (0) 2020.01.19
Effective STL 이해하지 못한 항목 - 2  (0) 2020.01.19
Effective STL 이해하지 못한 항목 - 1  (0) 2020.01.18
Effective STL  (0) 2020.01.18
Comments