swap_ranges
swap_ranges (범위 대응 요소 교환)
두 범위의 대응 요소를 서로 교환하는 알고리즘이에요. <algorithm> 헤더에 있어요.
출처: cppreference
본문
swap_ranges는 [first1, last1)과 [first2, last2)(또는 두 번째 범위의 시작)의 대응 요소를 교환해요.
template< class ForwardIt1, class ForwardIt2 >
ForwardIt2 swap_ranges( ForwardIt1 first1, ForwardIt1 last1,
ForwardIt2 first2 );
- 반환 값: 두 번째 범위에서 마지막으로 교환된 요소 다음 반복자.
std::vector<int> a{1, 2, 3};
std::vector<int> b{9, 8, 7};
std::swap_ranges(a.begin(), a.end(), b.begin());
// a == {9,8,7}, b == {1,2,3}
두 컨테이너의 대응 요소들을 한 번에 맞바꿀 때 써요. (전체 컨테이너 교환은 멤버 swap이 더 저렴할 수 있어요.)