说明:本文仅供学习交流,转载请标明出处,欢迎转载!
STL封装了一个排序算法,该算法相应的头文件为#include<algorithm>,我们能够依据须要对一个数组进行排序或者降序。
sort的函数原型为:
void sort(b,e,pre=up),表示对[b,e)的元素进行排序,第三个參数为一个谓词,我们能够自己定义排序方式,默认排序方式为升序排序。
详细实现代码例如以下:
#include<iostream> #include<vector> #include<iterator>//使用了流迭代器ostream_iterator #include<algorithm>//使用sort函数 using namespace std; template<typename T,size_t N> void print(T (&arr)[N])//输出一个数组的值 { int i; for(i=0;i<N;i++) { cout<<arr[i]<<" "; } cout<<endl; } int up(const int &a,const int& b)//定义升序排序 { return a<b; } int down(const int &a,const int &b)//定义降序排序 { return a>b; } int main() { int arr[]={3,1,2,4,9,5,2,9}; print(arr);//输出原数组 sort(arr,arr+sizeof(arr)/sizeof(int),up); print(arr);//输出升序排序后的数组 sort(arr,arr+sizeof(arr)/sizeof(int),down); print(arr);//输出降序排序后的数组 return 0; }
以上代码必须在对STL支持得比較好的编译器下才干编译通过,比方VS2010,g++编译器等都能够,可是VC6.0肯定不行。
时间: 2024-10-08 11:02:09