2013년 11월 28일 목요일

C++ 정렬

C++에서 정렬할 일이 생기면 C++ 표준 라이브러리의 sort 함수를 이용하면 편하다.

사용 예는 다음과 같다:

#include <algorithm>
#include <iostream>

int main() {
  using namespace std;

  const int size = 9;
  int a[size] = {5, 8, 1, 2, 9, 3, 7, 4, 6}; 

  sort(a, a + size);

  for (int i = 0; i < size; ++i)
    cout << a[i] << ' ';
  cout << '\n';

  return 0;
}
#include <algorithm>sort(a, a + size);를 잘 보시라.
실행 결과는 다음과 같다:
1 2 3 4 5 6 7 8 9

함수에 넘겨진 인자들의 뜻은:

  • a: 정렬할 배열의 첫 요소를 가리키는 포인터.
  • a + size: 정렬할 배열의 마지막 요소의 다음을 가리키는 포인터.

"마지막 요소"가 아니라 "마지막 요소의 다음"을 가리키는 포인터를 넘기는 걸 의아하게 생각하시는 분이 있으실 것 같다.
이는 일종의 관습으로, 이렇게 하는 편이 더 쉬운 프로그래밍을 가능하게 한다하여, 이와 같이 정한 것이다.
예를 들어, 배열의 길이를 구할 땐, (마지막 요소의 다음을 가리키는 포인터) - (첫 요소를 가리키는 포인터)를 쓰는 것이, (마지막 요소를 가리키는 포인터) - (첫 요소를 가리키는 포인터) + 1보다 간단하다.
(+1이 없으므로.)

C++ 정렬에 관한: 이전 글 없음 다음 글