vector 排序方法sort的使用

2021-09-08 03:34:12 字數 1551 閱讀 9732

使用vector的sort方法,有兩種形式,一種是在類內部使用操作符過載實現,一種是在類外面寫乙個比較函式。但是sort方法無法直接傳入其它形參,在需要動態排序相對某個人的位置時,採取了間接通過靜態變數的方法。為防止併發量巨大時,靜態變數無法及時改變而產生錯誤資料,故用一迴圈去驗證等待賦值,排完序後再還原為初始值。

1 #include 2 #include 

3 #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...