728x90
이전에 sorting 알고리즘 몇 가지를 직접 C++로 구현 해 보았는데 사실 다 부질없고 라이브러리 함수가 모두 존재한다.
하지만 기억 저 편 하드디스크에서 아직 디스패치 되지 않는 나의 데이터들을 적재하기위해 잠시 IO인터프리터가 되어 주었던 것으로 하겠다. 망할 운영체제.
여튼 헤더에 <algorithm>을 include 하면 우리가 원하는 정렬을 사용할 수 있다.
#sort(a,b)
- sort 함수를 사용하기 위해서는 정렬할 각 원소들이 비교가능해야한다.
- 숫자는 크기순, 문자는 사전순, pair 나 tuple의 경우 처음 요소가 작은 순서대로 비교 연산자가 정의되어있다.
몇가지 예시를 들어주도록 하겠다.
# vector 정렬
#include <vector> // 헤더파일 언급 한 번 해 드리께
vector<int> v = {4,2,5,3,5,8,3};
sort(v.begin(),v.end());
- begin, end는 포인터 같은 느낌으로 생각하면 될 듯 하다.
- Vector V의 처음부터 끝까지 정렬한다는 의미이다.
# array 정렬
int n =7;
int a[] = {4,2,3,3,5,8,3};
sort(a,a+n);
- array의 처음위치부터 끝까지 sorting을 진행한다.
# string정렬
#include <string> // 헤더파일 슥삭 써 드리께
string s = "monkey";
sort(s.begin(), s.end());
- string의 경우 사전적 순서로 정렬된다.
# pair 정렬
#include <vector> // 헤더 스으을적 써주께에
vector<pair<int, int>> v;
v.push_back( (1,5));
v.push_back( (2,3));
v.push_back( (4,4));
v.push_back( (8,6));
v.push_back( (6,2));
sort(v.begin(), v.end());
비교 기준을 바꾸고 싶은 경우 bool compare 함수를 새로 정의하면 된다.
# 사용자 정의 구조체(클래스)
- 비교 연산자가 없으므로 operator를 따로 정의해 주어야 한다.
728x90
'😒 저 저 저 개념없는 나 > 🤬 이런 C++' 카테고리의 다른 글
[c++] std::tie() (0) | 2022.06.05 |
---|---|
[C++] pair 자료형 (0) | 2022.04.16 |
[C++] auto 타입 추론 (0) | 2022.04.16 |