vector的sort使用 學習筆記

2021-06-28 02:47:57 字數 1082 閱讀 4567

c++裡的容器有vector, list,map,pair等。最近在學習使用過程中,走了一些彎路,記錄一下。

彎路1——map插入元素

如果定義了 mapm_test;   要插入乙個元素,不能直接m_test.insert(1,1)  得 m_test.insert(pair(1,1)) 或者使用m_test.insert(make_pair(1,1)) 。

如果要使用make_pair得包含標頭檔案 #include

sort是stl提供的排序演算法,只能對float,int等常見資料型別進行排序,它支援自定義比較函式,就比較靈活了。 不過,sort不能對map排序,但是map會自動對key值從小到大進行排序。

stl排序sort詳解 這篇博文中說的比較清楚。

彎路1—— 如何自定義比較函式

c++primer中給了例子,但是沒有給出細節,特別是在類關係比較複雜的大型**中。自己在vs2000中實驗了好久,終於搞清楚了。貼乙個完整**,如下:

#include #include #include #include #include #include #include using namespace std;

namespace my_name

;class c_test

;//得定義在類外面,可以在namespace中。

bool cmp(pairm_one,pairm_two)

void c_test::sort_test()

; priority.push_back(pair(3.0,mystruct));

priority.push_back(pair(2.0,mystruct));

priority.push_back(pair(3.0,mystruct));

priority.push_back(pair(5.0,mystruct));

priority.push_back(pair(4.0,mystruct));

//for( itor = priority.begin(); itor != priority.end(); itor++ )

// cout<<"first-"<< itor->first

vector 排序方法sort的使用

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

vector 排序方法sort的使用

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

STL模板之vector與sort的使用

演算法學習 題目 輸入任意 使用者,成績 序列,可以獲得成績從高到低或從低到高的排列,相同成績.都按先錄入排列在前的規則處理。例示 jack 70 peter 96 tom 70 smith 67 從高到低 成績 peter 96 jack 70 tom 70 smith 67 從低到高 成績 sm...