C \ C++
[C++] sort 함수 compare
인디아나쥰이
2021. 2. 9. 20:20
sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);
정렬해주는 함수로 굉장히 사용하기 편하다.
뒤에 compare는 사용하지 않아도 되고,
sort (RandomAccessIterator first, RandomAccessIterator last);
그냥 사용할 경우에는 오름차순이 디폴트이다.
sort를 이용한 오름차순 && 내림차순
나같은 경우 이해가 잘안가서 힘들었는데
설명이 맞을지는 모르겠으나,
오름차순의 경우 앞에 있는 수 보다 뒤에 있는 수가 더 클때 정렬해주는 경우로써
더 작은 숫자가 a에 더 큰 숫자가 b에
ex)
{8,3} 이 있다면 a = 3 ,b = 8
내림차순의 경우 앞에 있는 수가 뒤에 있는 수보다 클때 정렬,
ex)
{8,3} 이 있다면 a = 8 ,b = 3
참고로 말하자면 int a,b 에는 어떤 arg가 들어가는 것이 아니다.
그냥 정렬의 기준을 위한 변수일뿐
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
bool comp(int a, int b)
{
return a < b; // 1 2 3 4 5 6 7 8 9 10 뒤에있는 숫자가 더 크다.
}
bool comp(int a, int b)
{
return a > b; // 10 9 8 7 6 5 4 3 2 1 앞에 있는 숫자가 더 크다.
}
int main(void)
{
vector<int> a = {8,3,5,4,1,10,9,2,7,6};
sort(a.begin(), a.end(), comp);
for(int i = 0; i < a.size(); i++)
{
cout << a[i] << " ";
}
}
728x90
반응형