iter_swap

iter_swap (두 반복자가 가리키는 값 교환)

두 반복자가 가리키는 요소의 값을 서로 교환하는 알고리즘이에요. <algorithm> 헤더에 있어요.

출처: cppreference

본문

iter_swapab가 가리키는 값을 교환해요.

template< class ForwardIt1, class ForwardIt2 >
void iter_swap( ForwardIt1 a, ForwardIt2 b );

std::swap(*a, *b)와 동등하지만, 반복자 한 쌍을 받는 형태라는 게 특징이에요. 두 반복자의 타입이 달라도 동작해요.

std::vector<int> v{1, 2, 3, 4};
std::iter_swap(v.begin(), v.begin() + 2);   // v == {3,2,1,4}

std::swap(*a, *b)와 달리 반복자를 직접 받아서, 알고리즘 구현(std::reverse, std::sort 등)에서 요소 교환을 일반화할 때 쓰여요. 표준 정렬·순열 알고리즘들이 내부적으로 이 함수를 사용해요.

더 알아보기 (Learn more)

cppreference