<개요> 이번엔 파티션에 대한 함수들을 다루어보겠습니다. |
<std::partition> std::partition은 한 기준으로 컨테이너를 좌 또는 우로 나눕니다. 정렬은 되지 않습니다. 기준점이 되는 iterator을 생성하여, 그 iteartor의 좌측은 술어가 참인 값들, 우측은 술어가 거짓인 값들이 모이게 됩니다. std::partition은 양방향 반복자를 지원합니다.
partition 또한 안정적이지 못합니다. ( stable 이 아님 ) 복잡도는 ( last - first ) / 2 swap 입니다.
<std::stable_partition> std::stable_partition 은 위의 partition과 똑같지만, 안정적입니다.
<std::partition_point> std::partition_point 는 나뉘어진 파티션에서 술어에 맞지않는 첫번째 반복자를 찾아냅니다. 위의 vector<int>::iterator A 같이 기준점을 찾는데 사용됩니다.
|
'C++ > STL' 카테고리의 다른 글
STL) 분할, 정렬, 힙에 대한 추가 연산들 (stable_*, is_*, is_*_until) (0) | 2019.02.20 |
---|---|
STL) 순열(permutation)과 관련된 함수들 (std::next_permutation, std::prev_permutation, std::rotate, std::shuffle) (0) | 2019.02.20 |
STL) 정렬과 관련된 함수들 ( sort, stable_sort, inplace_merge, partial_sort, nth_element, is_sorted ) (0) | 2019.02.19 |
STL) Heap 과 관련된 연산들 (0) | 2019.02.18 |
STL) C++ 템플릿 (0) | 2019.02.18 |