【C++】std::sort()的用法 - Rafael Lab

Breaking

BANNER 728X90

2018年10月27日 星期六

【C++】std::sort()的用法

std::sort() in C++ STL


       int x[8]={1,3,5,2,4,6,9,0};

如果要將Arrary或Vector排序,除了使用各式排序法之外,其實有個內建的sort()函式可以直接使用。不過,在使用時記得要先引入 <algorithm>檔頭。
#include <algorithm>

一、將Arrary或Vector升幕排序

       sort(x,x+8);

結果:

  •  排序前:    int x[8]={1, 3, 5, 2, 4, 6, 9, 0};
  •  排序後:    int x[8]={0, 1, 2, 3, 4, 5, 6, 9};

       sort(x,x+4);

結果:

  •  排序前:    int x[8]={1, 3, 5, 2, 4, 6, 9, 0};
  •  排序後:    int x[8]={1, 2, 3, 5, 4, 6, 9, 0};

二、將Arrary或Vector降幕排序

       sort(x,x+8, greater<int>( ) );

結果:

  •  排序前:    int x[8]={1, 3, 5, 2, 4, 6, 9, 0};
  •  排序後:    int x[8]={9, 6, 5, 4, 3, 2, 1, 0};
或是

      bool cmp(int a, int b){  return a<b; }

       sort(x,x+8, cmp );

結果:

  •  排序前:    int x[8]={1, 3, 5, 2, 4, 6, 9, 0};
  •  排序後:    int x[8]={9, 6, 5, 4, 3, 2, 1, 0};

或是

       reverse(x,x+8 );

結果:

  •  排序前:    int x[8]={1, 3, 5, 2, 4, 6, 9, 0};
  •  排序後:    int x[8]={9, 6, 5, 4, 3, 2, 1, 0};

完整程式碼:

#include <iostream>
#include <algorithm>
using namespace std; 
void print(const int list[], int size){
    for(int i=0;i<size;i++){
        cout << list[i] << " ";
    }
bool cmp(int a,int b){
    return a>b;
int main() {
    int x[8]={1,3,5,2,4,6,9,0}; 
    print(x,sizeof(x)/sizeof(int)); 
    cout << endl << "After sorting..." << endl; 
    sort(x,x+8,cmp); 
    print(x,sizeof(x)/sizeof(int));
    cout << endl << "Reverse ..." << endl; 
    reverse(x,x+8); 
    print(x,8);
}

沒有留言:

張貼留言