使用系統排序演算法對自定義結構體陣列排序方法

2021-06-06 08:30:19 字數 2359 閱讀 1402

一、自定義結構體中的變數是 int 、usigned int 等型別時

有如下三種方法

#include "stdafx.h"

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

//for_each 的謂詞,為了輸出不同的物件, 這裡利用了函式物件

templateclass display: public binary_function

templateclass greater: public binary_function

};int main()

另一種參考例子

#include "stdafx.h"

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

class myclass ;

myclass(int a, int b):first(a), second(b){}

void set_value(int a,int b)

bool operator < (const myclass &m)const

public:

int first;

int second;

};bool less_second(const myclass & m1, const myclass & m2)

int main()

for(i = 0 ; i < vect.size(); i ++)

cout<<"("《二 、自定義結構體中的變數是 string char 等型別時

#include "stdafx.h"

#include #include #include using namespace std;

class lable_word_node

public:

string lable_string;//用於儲存單詞的標識

string old_string;//用於儲存單詞

};void lable_word_node::fill_string_to_lable_and_word(char s)//用字串對 物件中的lable_string、old_string賦值

void lable_word_node::char_of_string_increase_sort(char dest)//對字串 s 中的字母以公升序排序

void print_string_member(vectorvect)//列印向量中存放的標識和單詞

else//不同標識,則新建標識

}}//用二分查詢快速查詢

int my_binary_search(vectorvect, string s)

return -1;

}int main(void)

; unsigned int count = 0;

int pos;

vectorvect1;

vectorvect2;

lable_word_node a;

lable_word_node find_node;

for(i = 0;i<6; i++)

printf("\n建立標識後:\n");

printf("---------------------------------------------\n");

print_string_member(vect1);

printf("\n排序後:\n");

printf("---------------------------------------------\n");

stable_sort(&vect1[0], &vect1[vect1.size()]);

print_string_member(vect1);

printf("---------------------------------------------\n");

unique_sort_node(&vect1, &vect2);

print_string_member(vect2);

printf("\n找到了:\n");

printf("---------------------------------------------\n");

find_node.fill_string_to_lable_and_word("stop");//假設待查的單詞為 "stop"

pos = my_binary_search(vect2, find_node.lable_string);

if(pos != -1)

{ cout << vect2[pos].old_string.begin() <

c c sort 對自定義結構體排序

自定義結構體進行對結構體內部的各個項進行排序 題目描述 有n個學生的資料,將學生資料按成績高低排序 從低到高,這一點可以從所給的例項中體現出來 如果成績相同則按姓名字元的字母序排序,如果姓名的字母序也相同則按照學生的年齡排序,並輸出n個學生排序後的資訊。輸入 測試資料有多組,每組輸入第一行有乙個整數...

自定義對結構體排序(sort)

大家都知道,快速排序是不穩定的排序方法。如果對於陣列 現的任意a i a j iinput 本題目包含多組輸入,請處理到檔案結束。對於每組資料,第一行有乙個正整數n 0output 對於每組資料,如果演算法是正確並且穩定的,就在一行裡面輸出 right 如果演算法是正確的但不是穩定的,就在一行裡面輸...

C 結構體自定義排序

宣告 本機無c 環境,以下 均沒有編譯測試,最近golang寫的比較多,語法可能會有問題,請自行測試 sort排序函式簡單使用 include using namespace std int a 100 bool cmp1 int x,int y bool cmp2 int x,int y int ...