使用vector的sort方法,有兩種形式,一種是在類內部使用操作符過載實現,一種是在類外面寫乙個比較函式。但是sort方法無法直接傳入其它形參,在需要動態排序相對某個人的位置時,採取了間接通過靜態變數的方法。為防止併發量巨大時,靜態變數無法及時改變而產生錯誤資料,故用一迴圈去驗證等待賦值,排完序後再還原為初始值。
1 #include 2 #include3 #include 4 #include 5
6using
namespace
std;78
double calc_distance(double _long1,double _lat1,double _long2,double
_lat2)918
class
user
1927
double getlongitude()
28double getlatitude()
29 user(int _id,double _longitude,double
_latitude)
3035
36bool
operator
<(const user& obj) const
3740
41bool
operator>(const user& obj) const
4245
46 friend bool sort_by_distance(const user& obj1,const user&obj2);
47 friend bool sort_by_id(const user& obj1,const user&obj2);
48};
4950
static
double _longitude = 0.0;51
static
double _latitude = 0.0;52
53bool sort_by_distance(const user& obj1,const user&obj2)
5457
58bool sort_by_id(const user& obj1,const user&obj2)
5962
intmain()
6383}84
85sort(vect.begin(),vect.end(),sort_by_distance);
86//
sort(vect.begin(),vect.end(),sort_by_id);
87//
sort(vect.begin(),vect.end(),less());
88//
sort(vect.begin(),vect.end(),greater());
8990 _longitude = 0.0
;91 _latitude = 0.0;92
93 vector::iterator it =vect.begin();
94while(it !=vect.end())
9599
100 }
vector 排序方法sort的使用
使用vector的sort方法,有兩種形式,一種是在類內部使用操作符過載實現,一種是在類外面寫乙個比較函式。但是sort方法無法直接傳入其它形參,在需要動態排序相對某個人的位置時,採取了間接通過靜態變數的方法。為防止併發量巨大時,靜態變數無法及時改變而產生錯誤資料,故用一迴圈去驗證等待賦值,排完序後...
Vector的自動排序Sort
建立了乙個結構體,然後用容器進行存放,想對其進行排序。vector支援sort函式,但是需要自己指定排序函式。方法如下 1.需要包含標頭檔案 include include using namespace std 2.宣告結構體 typedef struct mydata mydata 3.定義比較...
vector用sort演算法排序
用sort對vector排序有兩種方法 方法1 include 容器的標頭檔案 include sort演算法用到的標頭檔案 include greater模版函式用到的標頭檔案 using namespace std struct info bool info operator const inf...