ACM STL中的sort

STL中的sort

定義

template <class RandomAccessIterator>
  void sort ( RandomAccessIterator first, RandomAccessIterator last );

template <class RandomAccessIterator, class Compare>
  void sort ( RandomAccessIterator first, RandomAccessIterator last, Compare comp );

如果要排序的元素具有<運算符

可用sort(num,num+n)來排序

#include <iostream>
#include <algorithm>

using namespace std;

int num[]={2,5,3,1,6,8};

int main()
{
    int n=6;
    sort(num,num+n);

    for(int i=0;i<n;i++) cout<<num[i]<<" ";
    cout<<endl;

    return 0;
}


如果沒有需要爲排序元素手動添加<運算符

然後sort(num,num+n)

或者寫一個比較函數

像這樣,把從小到大排序變爲從大到小

#include <iostream>
#include <algorithm>

using namespace std;

int num[]={2,5,3,1,6,8};

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

int main()
{
    int n=6;
    sort(num,num+n,cmp);

    for(int i=0;i<n;i++) cout<<num[i]<<" ";
    cout<<endl;

    return 0;
}

#include <iostream>
#include <algorithm>

using namespace std;

int pri[]={2,3,1,5,4,6};

struct Num
{
    int dat;
};

bool cmp(const Num &a,const Num &b)
{
    return a.dat<b.dat;
}

Num num[]={2,5,3,1,6,8};

int main()
{
    int n=6;
    sort(num,num+n,cmp);

    for(int i=0;i<n;i++) cout<<num[i].dat<<" ";
    cout<<endl;

    return 0;
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章