vector是乙個很強大的容器,#include後就可以直接使用許多演算法,如排序、查詢等,但是當vector內部儲存結構體時,這些演算法就就不能直接使用了
如定義結構體如下:
struct mydata
string name;
float value;
只需要定義乙個比較函式
bool operator == (const info& left, const info& rigt)
else }
下面實現乙個功能,找到名字相同的結構體,把值大的保留,找不到的就新增該元素到vector中,實現兩個向量的合併
函式如下:
vectorcombine_vec(vector& v1,vector& v2)
} else }
return v1;
vector存放結構體時排序:
先定義排序函式:
bool sort_by_value(const mydata& data1,const madata& data2 ){
return data1.valuesort(vec.begin(),vec.end(),sort_by_value);
結構體容器vector
最近在做處理資料的問題,本來想建立乙個結構體,裡面存放兩個陣列,在乙個main函式裡進行了設計,也能成功執行,但是寫成函式呼叫的形式就會出錯,並且這種寫法必須設定陣列的大小。include include using namespace std int main stu for int i 0 i ...
C 中,結構體vector使用sort排序
今天寫 的是遇到想對vector進行排序的問題,隱約記得std sort函式是可以對vector進行排序的,但是這次需要排序的vector中壓的是自己定義的結構體 元素大於等於2 想以其中某乙個元素進行正序或逆序排序,則不能直接使用sort函式。1.c 中當 vector 中的資料型別為基本型別時,...
C語言結構體和結構體排序
結構體 結構體是一種構造資料型別 構造資料型別包括 陣列型別 結構體型別 共用體型別 定義 把不同的資料組合成乙個整體。結構體的一般形式struct 結構體名稱 struct是關鍵字 不要忘記這裡的分號定義結構體的三種方法 第一種 先定義結構體型別,在定義變數名 struct student str...