관리 메뉴

Storage Gonie

(13) C++ algorithm헤더의 sort함수 본문

알고리즘/문제해결을 위한 C++ 공부

(13) C++ algorithm헤더의 sort함수

Storage Gonie 2019. 4. 26. 16:01
반응형

# 배열 정렬

- sort(vec.begin(), v.end())                                     : 오름차순(default)

- sort(vec.begin(), v.end(), less<int>())                  : 오름차순

- sort(vec.begin(), v.end(), greater<int>())             : 내림차순
- sort(vec.begin(), v.end(), greater<int>(), compare) : 함수기준

#include <iostream>
#include <algorithm>

using namespace std;

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

    int length = sizeof(arr) / sizeof(int);
    
    sort(arr, arr+length);
    for (int i=0; i< length ; i++)
        cout << arr[i] << " ";          // 0 1 2 3 4 5 6 7 8 8 
    
    cout << endl;
    
    sort(arr, arr+length, less<int>());
    for (int i=0; i< length ; i++)
        cout << arr[i] << " ";          // 0 1 2 3 4 5 6 7 8 8 
    
    cout << endl;

    sort(arr, arr+length, greater<int>());
    for (int i=0; i< length ; i++)
        cout << arr[i] << " ";          // 8 8 7 6 5 4 3 2 1 0 
}



 

# 벡터의 값 정렬
- sort(vec.begin(), v.end())                                     : 오름차순(default)

- sort(vec.begin(), v.end(), less<int>())                  : 오름차순

- sort(vec.begin(), v.end(), greater<int>())             : 내림차순
- sort(vec.begin(), v.end(), greater<int>(), compare) : 함수기준

# include <vector>

using namespace std;

int main()
{
    vector<int> vec; -> string을 push_back 해준다음에 string으로도 정렬이 가능함
    
    sort(vec.begin(), vec.end());                  // 오름차순 정렬(default)
    sort(vec.begin(), vec.end(), less<int>());     // 오름차순 정렬
    sort(vec.begin(), vec.end(), greator<int>());  // 내림차순 정렬
}
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>

using namespace std;

bool compare(string s1, string s2){ // 알아서 2개씩 꺼내서 비교함
    return s1 < s2; // 내림차순 정렬
    //return s1 > s2; // 오름차순 정렬
}

int main() {
    string str;
    cin >> str;

    int len = str.size();
    vector<string> vec;

    for (int i = 0; i < len; i++)
        vec.push_back(str.substr(i, len-i));

    //sort(vec.begin(), vec.end());    
    //sort(vec.begin(), vec.end(), greator<string>());
    //sort(vec.begin(), vec.end(), less<string>());
    sort(vec.begin(), vec.end(), compare);

    for (int i = 0; i < vec.size(); i++)
        cout << vec[i] << endl;
}

 

반응형
Comments