1樓:藍色**
你如果要按照x的大小順序牌還是y 的大小順序牌,。
int comp(const void *a, const void *b)
2樓:
vc6 幫助裡的對qsort 裡compare函式指標引數的要求:
compare((void*)elem1,(void*)elem2);
the routine must compare the elements, then return one of the following
values:
return value description
< 0 elem1 less than elem2
0 elem1 equivalent to elem2
> 0 elem1 greater than elem2
1)int less_x(const void *a, const void *b)
qsort(point, sizeof(point), n, less_x);
2)int less_y( cons point *a, cons point *b)
qsort(point, sizeof(point), n, (int (*)(const void *, const void *))less_x);
3)int less_xy( cons point *a, cons point *b)
qsort(point, sizeof(point), n, (int (*)(const void *, const void *))less_xy);
3樓:她是我的小太陽
#include
#include
using namespace std;
static const int n = 3;
struct point
;int comp(const void *a, const void *b)
return true;
}int main()
qsort(point, n, sizeof(point), comp);
for(int i=0; i
c++中sort怎麼對結構體陣列中的字串陣列排序?
4樓:
//我寫的一個簡單的使用c++ sort的例子,供你參考#include
#include
typedef struct _testsortarraytestsortarray;
int main()
std::cout << "previous string is:" << tsa._arrstr << std::endl;
std::sort(tsa._arrstr,tsa._arrstr + 15);
std::cout << "after sort,string is:" << tsa._arrstr << std::endl;
system("pause");
return 0;}
請問,c++中的類的物件組成的動態陣列怎麼用sort()或qsort()排序?
5樓:菜刀撒
使用sort排序
結構體網上例子很多的 就是先寫一個排序函式
然後讓sort按照你的函式排序就行了
stl 裡面有個 sort 函式,可以直接對陣列排序,複雜度為 n*log2(n) 。使用這個函式,需要包含標頭檔案。
這個函式可以傳兩個引數或三個引數。第一個引數是要排序的區間首地址,第二個引數是區間尾地址的下一地址。也就是說,排序的區間是 [a,b) 。
簡單來說,有一個陣列 int a[100] ,要對從 a[0] 到 a[99] 的元素進行排序,只要寫 sort(a,a+100) 就行了,預設的排序方式是升序。
拿我出的「 ac 的策略」這題來說,需要對陣列 t 的第 0 到 len-1 的元素排序,就寫 sort(t,t+len);
對向量 v 排序也差不多, sort(v.begin(),v.end());
如果是沒有定義小於運算的資料型別,或者想改變排序的順序,就要用到第三引數——比較函式。比較函式是一個自己定義的函式,返回值是 bool 型,它規定了什麼樣的關係才是「小於」。想把剛才的整數陣列按降序排列,可以先定義一個比較函式 cmp
bool cmp(int a,int b)
排序的時候就寫 sort(a,a+100,cmp);
假設自己定義了一個結構體 node
struct node
有一個 node 型別的陣列 node arr[100] ,想對它進行排序:先按 a 值升序排列,如果 a 值相同,再按 b 值降序排列,如果 b 還相同,就按 c 降序排列。就可以寫這樣一個比較函式:
以下是**片段:
bool cmp(node x,node y)
排序時寫 sort(a,a+100,cmp);
6樓:匿名使用者
//假設類名為a,比較函式可以這樣寫
bool cmp(a m,a n)
使用的時候是這樣
a array[size];
....//各種賦值修改操作
sort(array,array+size,cmp);//排序
7樓:匿名使用者
class array
s[100]
//按照result的值從小到大將類排序
int cmp( const void *a ,const void *b)
qsort(s,100,sizeof(s[0]),cmp);
c 中結構體是什麼?有什麼用,c 中的結構體是用來幹嘛的 能解決什麼問題
在c語言中,可以定義結構體型別,將多個相關的變數包裝成為一個整體使用。在結構體中的變數,可以是相同 部分相同,或完全不同的資料型別。在c語言中,結構體不能包含函式。在物件導向的程式設計中,物件具有狀態 屬性 和行為,狀態儲存在成員變數中,行為通過成員方法 函式 來實現。c語言中的結構體只能描述一個物...
c結構體中如果含有其他結構體陣列怎麼初始化?求大神指教
將a suba new a 10 改為 a suba 10 即可.此處 a 代表型別,suba代表變數名 類似int arr 10 寫成 int 10 arr 明顯錯誤 c 中結構體如何定義?結構體的成員中含有陣列 struct b 程式呼叫時 採用 b ab ab.suba new a 10 的方...
c 中new結構體的問題,c 中new一個結構體的問題。
這是個引數匹配的問題。你的test函式的引數是一個指標陣列,陣列的每個元素是指向stu結構體的指標,而你在呼叫test函式時,你傳進去的引數一個指向結構體陣列的指標,他們的型別不匹配,你只要將test函式的引數中的 去掉即可,即改為void test struct stu s 因為引數型別不匹配。將...