본문 바로가기
프로그래밍

STL vector sort(벡터 정렬) (1)

by _BlankSpace 2017. 4. 8.

C++은 STL이라는 강력하고 유저에게 엄청난(?) 도움을 주는 라이브러리를 제공한다.


오늘은 그 중, 벡터(vector)의 sort 즉 정렬하는 방법을 정리하고자 한다.


sort를 직접 구현하는 것은 그리 어렵지 않다.


버블 정렬이나 선택 정렬같은 것은 당장 코딩해도 금방 금방 해낼 수 있기 때문이다.


하지만, STL로 제공하는 정렬은 속도면에서도 빠른 정렬을 제공하고,


몇 줄로 정렬 기능을 사용할 수 있기 때문이다.


그럼, C++ 의 STL 중 벡터를 간단하게 정렬하는 방법을 소개하겠다.


먼저, 간단한 예를 보자.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
    vector<int> a;
    int b = 0;
    for (int i = 0; i < 10; i++) {
        cin >> b;
        a.push_back(b);
    }   
    sort(a.begin(), a.end());
    
    for (int i = 0; i < 10; i++) {
        cout << a[i] << endl;
    }   
    return 0;
}
 
cs
입력 : 1 2 5 7 3 4 6 8 9 5
출력 : 1 2 3 4 5 5 6 7 8 9

위의 13줄을 보면 표준라이브러리로 제공하는 sort() 함수를 볼 수 있다.

이때, a 벡터의 begin, end 함수로 시작과 끝을 인자로 넣으면 자동으로 정렬되는 것을 볼 수 있을 것이다.

그럼 반대로 출력하려면 어떻게 해야할까?

설마 beginend를 반대로 인자를 넣는 사람이 있을까? ( 내가 그랬다... )

정답은 다음 이야기에서 설명하겠다. 고민해보고 넘어오세요!

이상 글을 끝마치겠습니다.

저의 글이 도움이 되셨거나 공감이 되셨다면, 공감 버튼 한번 씩 꾸욱 눌러주시면 감사하겠습니다.

저에게는 큰 도움이 됩니다.


'프로그래밍' 카테고리의 다른 글

[STL] Vector 정리  (0) 2017.04.14
STL vector sort(벡터 정렬) (2)  (0) 2017.04.08
STL Vector정리(1)  (0) 2017.04.08
mutable 키워드  (0) 2017.03.25
HTTP의 기본  (0) 2017.02.13

댓글