ranges::partition

ranges::partition (분할 — ranges)

범위를 술어 기준으로 참/거짓 그룹으로 분할하는 ranges 버전 알고리즘이에요. <algorithm> 헤더에 있어요.

출처: cppreference

본문

std::ranges::partition은 범위의 요소를 술어 pred가 참인 것들이 거짓인 것들보다 앞에 오도록 재배열해요.

namespace std::ranges {
template< std::permutable I, std::sentinel_for<I> S, class Proj = std::identity,
          std::indirect_unary_predicate<std::projected<I, Proj>> Pred >
constexpr ranges::subrange<I> partition( I first, S last, Pred pred, Proj proj = {} );
}
  • 반환 값: subrange<I>로 분할 경계를 나타내요.
  • 각 그룹 내부의 상대 순서는 보장하지 않아요.
std::vector<int> v{1, 2, 3, 4, 5, 6};
std::ranges::partition(v, [](int x){ return x % 2 == 0; });
// 짝수들이 앞으로

순서를 유지하려면 안정 버전 ranges::stable_partition을 써요.

더 알아보기 (Learn more)

cppreference