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
반응형