04
18
728x90
#include <iostream>
#include <algorithm>

using namespace std;

// 정렬(#include <algorithm> 필요)
// 인자1: 시작지점(배열의 포인터)
// 인자2: 끝나는지점 + 1(배열의 포인터 + 배열의 크기)
// 인자3: 값을 정렬하는 조건을 담은 bool리턴하는 비교메소드(여기선 내림차순)
// 객체를 정렬할 경우 x좌표 같으면 y좌표 큰 순으로 정렬하는 등으로 활용 가능

bool desc(int num1, int num2) {
    return num1 > num2;
}

int main() {
    int arr[10] = { 3, 8, 6, 7, 1, 0, 4, 2, 9, 5 };
    int length = sizeof(arr) / sizeof(int);

    cout << "==정렬 전==" << '\n';
    for(int i = 0; i < length; i++) {
        cout << "arr[" << i << "]: " << arr[i] << '\n';
    }

    cout << "==오름차순 정렬 후==" << '\n';
    sort(arr, arr + length);
    for(int i = 0; i < length; i++) {
        cout << "arr[" << i << "]: " << arr[i] << '\n';
    }

    cout << "==내림차순 정렬 후==" << '\n';
    sort(arr, arr + length, desc);
    for(int i = 0; i < length; i++) {
        cout << "arr[" << i << "]: " << arr[i] << '\n';
    }

    return 0;
}

vector같은 경우는 sort()메소드의 인자로 v.begin(), b.end() 이런식으로 넣을 수 있다.

 

결과

728x90
COMMENT