C++은 STL이라는 강력하고 유저에게 엄청난(?) 도움을 주는 라이브러리를 제공한다.
오늘은 그 중, 벡터(vector)의 sort 즉 정렬하는 방법을 정리하고자 한다.
sort를 직접 구현하는 것은 그리 어렵지 않다.
버블 정렬이나 선택 정렬같은 것은 당장 코딩해도 금방 금방 해낼 수 있기 때문이다.
하지만, STL로 제공하는 정렬은 속도면에서도 빠른 정렬을 제공하고,
몇 줄로 정렬 기능을 사용할 수 있기 때문이다.
그럼, C++ 의 STL 중 벡터를 간단하게 정렬하는 방법을 소개하겠다.
먼저, 간단한 예를 보자.
1234567891011121314151617181920 #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 함수로 시작과 끝을 인자로 넣으면 자동으로 정렬되는 것을 볼 수 있을 것이다.그럼 반대로 출력하려면 어떻게 해야할까?설마 begin과 end를 반대로 인자를 넣는 사람이 있을까? ( 내가 그랬다... )정답은 다음 이야기에서 설명하겠다. 고민해보고 넘어오세요!이상 글을 끝마치겠습니다.저의 글이 도움이 되셨거나 공감이 되셨다면, 공감 버튼 한번 씩 꾸욱 눌러주시면 감사하겠습니다.저에게는 큰 도움이 됩니다.
'프로그래밍' 카테고리의 다른 글
[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 |
댓글