꾸르꾸르

[C++/STL] sort 내림차순 오름차순 본문

코딩, 알고리즘, 문제풀이/문법,알고리즘,C++,기타등등

[C++/STL] sort 내림차순 오름차순

GGUGGU- 2020. 4. 23. 00:05

2017. 10. 20에 쓰여진 글입니다.


 

Vector일 경우

#include <iostream>
#include <vector>        //vector 위한 헤더
#include <algorithm>    //sort위한 헤더
#include <functional>    //greater, less 위한 헤더
 
using namespace std;
 
int main()
{
    vector <int> a;
    vector <int >::iterator it;
    a.push_back(1);
    a.push_back(3);
    a.push_back(5);
    a.push_back(2);
    a.push_back(4);
    a.push_back(6);
 
    cout << "초기상태!" << endl;
    for (it = a.begin(); it != a.end(); it++)
        cout << *it << endl;
    cout << endl;
 
    sort(a.begin(), a.end(), greater<int>());        //내림차순정렬
    cout << "내림차순정렬!" << endl;
    for (it = a.begin(); it != a.end(); it++)
        cout << *it << endl;
    cout << endl;
 
    cout << "오름차순정렬!" << endl;
    sort(a.begin(), a.end(), less<int>());            //오름차순 정렬, 
                                                    //sort의 기본 정렬은 오름차순 상태임. 
                                                    //less안써줘도 오름차순으로 정렬됨
    for (it = a.begin(); it != a.end(); it++)
        cout << *it << endl;
    cout << endl;
 
    return 0;
}

 

배열일 경우

#include <iostream>
#include <algorithm>    //sort위한 헤더
#include <functional>    //greater, less 위한 헤더
 
using namespace std;
 
int main()
{
    int arr[6] = { 1,3,5,2,4,6 };
 
    cout << "초기상태!" << endl;
    for (int i=0; i < 6; i++)
        cout << arr[i] << endl;
    cout << endl;
 
    sort(arr, arr + 6, greater<int>());        //내림차순정렬
    cout << "내림차순정렬!" << endl;
    for (int i = 0; i < 6; i++)
        cout << arr[i] << endl;
    cout << endl;
 
    cout << "오름차순정렬!" << endl;
    sort(arr, arr + 6, less<int>());        //오름차순 정렬, 
                                            //sort의 기본 정렬은 오름차순 상태임. 
                                            //less안써줘도 오름차순으로 정렬됨
    for (int i = 0; i < 6; i++)
        cout << arr[i] << endl;
    cout << endl;
 
    return 0;
}

 

실행 결과

Comments