![]() |
#2
寒风中的细雨2012-09-17 18:50
![]() // alg_sort.cpp // compile with: /EHsc #include <vector> #include <algorithm> #include <functional> // For greater<int>( ) #include <iostream> // Return whether first element is greater than the second bool UDgreater ( int elem1, int elem2 ) { return elem1 > elem2; } int main( ) { using namespace std; vector <int> v1; vector <int>::iterator Iter1; int i; for ( i = 0 ; i <= 5 ; i++ ) { v1.push_back( 2 * i ); } int ii; for ( ii = 0 ; ii <= 5 ; ii++ ) { v1.push_back( 2 * ii + 1 ); } cout << "Original vector v1 = ( " ; for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ ) cout << *Iter1 << " "; cout << ")" << endl; sort( v1.begin( ), v1.end( ) ); cout << "Sorted vector v1 = ( " ; for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ ) cout << *Iter1 << " "; cout << ")" << endl; // To sort in descending order. specify binary predicate sort( v1.begin( ), v1.end( ), greater<int>( ) ); cout << "Resorted (greater) vector v1 = ( " ; for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ ) cout << *Iter1 << " "; cout << ")" << endl; // A user-defined (UD) binary predicate can also be used sort( v1.begin( ), v1.end( ), UDgreater ); cout << "Resorted (UDgreater) vector v1 = ( " ; for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ ) cout << *Iter1 << " "; cout << ")" << endl; } |
#include<iostream>
#include<algorithm>
using namespace std;
bool compare(char a,char b)
{
return a<b;
}
int main()
{
char a[20]={'a','c','b','e','d'}; int i;
sort(a,a+5,compare);
for(i=0;i<5;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
这是看到有人用sort()函数就研究了下,结构体也自己编了个。就是对结构体里面的2种数据比较成功,比如一个学生姓名和分数的结构体,在名字相同时对分数排名。请大教下,因为是新手,希望大家有代码容易理解,同时对这种排序有其他数据类型的运用,也说明下。