이분 탐색을 할 때 유용한 2가지 함수를 소개해 드리고자 합니다. c++의 헤더에는 lower_bound 함수가 있어요. 그리고 upper_bound 함수가 있는데요. random 접근이 가능한 경우, O(log)에 수행하게 해 주는 함수입니다. lower_bound(first_iter,last_iter,key); upper_bound(first_iter,last_iter,key); 대충 요약하면 [first_iter, last_iter)에 대해서, key값보다 크거나 같은 최초의 위치, key 값보다 큰 최초의 위치를 리턴하는데요. iterator를 리턴해요. 위치를 리턴한다는 것입니다. 물론, Object를 lower_bound, upper_bound를 써야 할 경우도 종종 있는데요. 이러한 경우, ..
STL 검색 결과
해당 글 7건
lower_bound, upper_bound 함수 : 정렬이 되어 있다면 쓸 수 있다.
레퍼런스/예제
2019. 7. 25. 18:13
c++ bitset (비트셋) 예제 : 쉽게 이해해 봅시다.
이번에는 c++에 있는 bitset 이라는 친구에 대해서 잠깐 알아볼 거에요. 보통, 비트 연산자를 이용해서 상태를 관리할 때, & 연산자를 쓰고 를 쓰고, | 같은 것을 조합해 가면서 쓰셨을 거에요. 익숙해 지면 그렇게 어렵지는 않습니다만, 그래도 조금 더 쉽게, 집합에 x가 포함되는지, 그렇지 않은지, x를 제거하고, x를 추가하는 연산을 조금 더 간편하게 할 수 있는 방법이 없을까요? 이러한 것들은, bitset을 이용해서 너무 쉽게 할 수 있습니다. 그 전에, 이것이 어떠한 구조를 가지고 있는지 간략하게 살펴 봅시다. 많이 물어보시는 가 내부적으로 어떻게 동작하는지부터 간단하게 소개해 보겠습니다. 먼저 비트셋은 word 단위로 이루어진 배열입니다. 그 안에 상태들이 저장이 되어 있는데요. 우리가 ..
레퍼런스/예제
2019. 6. 28. 23:49
최근댓글