ranges::sort

ranges::sort (정렬 — ranges)

범위를 정렬하는 ranges 버전 알고리즘이에요. <algorithm> 헤더에 있어요.

출처: cppreference

본문

std::ranges::sort는 범위 [first, last)를 비감소 순서로 정렬해요.

namespace std::ranges {
template< std::random_access_iterator I, std::sentinel_for<I> S,
          class Comp = ranges::less, class Proj = std::identity >
requires std::sortable<I, Comp, Proj>
constexpr I sort( I first, S last, Comp comp = {}, Proj proj = {} );
}
  • comp(기본 less)로, proj(투영)를 적용해 비교해요.
  • 복잡도: O(N·log N)번의 비교.
std::vector<int> v{3, 1, 4, 1, 5, 9, 2};
std::ranges::sort(v);
// v == {1,1,2,3,4,5,9}

// 내림차순
std::ranges::sort(v, std::ranges::greater());

std::sort의 ranges 버전이에요. 범위 하나로 간결하게 정렬하고, 투영으로 "객체의 특정 필드 기준" 정렬도 쉽게 할 수 있어요.

더 알아보기 (Learn more)

cppreference