STL_qsort(对int,char,vector,结构体排序举例)
#include <iostream>#include <algorithm>#include <cstdio>#include <vector>#include <cstring>using namespace std;int cmp_int(const void *a, const void *b) { return *(int *)a - *(int *)b;}bool cmp_stl(int a, int b) { return a > b;}int cmp_char( const void *a , const void *b ){ return *(char *)a - *(char *)b ;}void print(int *a,int n){ for(int i=0; i<n; i++) { cout << a[i] << " "; } cout << endl;}bool qsort_int() { cout << "qsort_int:" << endl; int num[12]; cout << "请输入十个数: "; for(int i = 0; i < 10; i++) { scanf("%d", &num[i] ); } qsort(num, 10, sizeof(num[0]), cmp_int ); for(int i = 0; i < 10; i++) { cout << num[i] << ' '; } cout << endl; return true;}void qsort_stl() { cout << "qsort_stl: " << endl; vector<int> v; for(int i = 0; i < 5; i++) { v.push_back(i); } for(int i = 10; i >= 5; i--) { v.push_back(i); } cout << "befor: " ; for(int i = 0; i <= 10; i++) { cout << v[i] << ' '; } cout << endl; cout << "after: "; sort(v.begin(), v.end()); for(int i = 0; i <= 10; i++) { cout << v[i] << ' '; } cout << endl; cout << "agagin"; sort(v.begin(), v.end(), cmp_stl); for(int i = 0; i <= 10; i++) { cout << v[i] << ' '; } cout << endl;}void qsort_char() { cout << "qsort_char: " << endl; cout << "请输入一个字符串:" ; int len = 0; char word[100]; cin >> word; len = strlen(word); qsort(word, len , sizeof(char), cmp_char); //将len替换为100即出错。 puts(word);}int main() { qsort_int(); qsort_stl(); qsort_char(); return 0;}
- 2楼wangwenhao00昨天 20:02
- http://www.cnblogs.com/BeyondAnyTime/archive/2012/05/22/2513776.html
- 1楼wangwenhao00昨天 20:00
- http://blog.csdn.net/daoluanxiaozi/article/details/7367349