演算法學習,演算法學習網站
排序函數sort()
這個函數是STL內建的,功能很強大~ 這裡教下使用方法。
sort()有三個參數,第一個是排序的起始位置,第二個是排序的結束位置,第三個是排序的判斷函數。函數原型為:
sort(<#_RandomAccessIterator __first#>, <#_RandomAccessIterator __last#>, <#_Compare __comp#>)
這個就是原型了~
使用方法
首先假設我們有一個vector<int> vec;向量容器,存放了很多無序正數,那麼我們就開始用sort給這些整數排序。首先其實位置是:vec.begin()結束位置是:vec.end(),比較函數可以不寫,預設是升序。也可以手寫。
代碼實現
直接看代碼實現會很簡單~
//// main.cpp// hdu_1040//// Created by Alps on 15/1/3.// Copyright (c) 2015年 chen. All rights reserved.////http://acm.hdu.edu.cn/showproblem.php?pid=1040#include <iostream>#include <vector>using namespace std;bool sortRule(int a, int b){ return a < b;}int main(int argc, const char * argv[]) { int n; scanf("%d",&n); int num; int a = 0; for (int i = 0; i < n; i++) { scanf("%d",&num); vector<int> list; while (num--) { scanf("%d",&a); list.push_back(a); } sort(list.begin(), list.end(), sortRule); vector<int>::iterator iter; for (iter = list.begin(); iter != list.end(); iter++) { printf("%d",*iter); if (iter == list.end()-1) { printf("\n"); }else{ printf(" "); } } } return 0;}
這就是個實現代碼了~測試例子請看:
http://acm.hdu.edu.cn/showproblem.php?pid=1040 給的輸入格式。