1. 程式人生 > >C++使用sort通過cmp實現對結構體的排序

C++使用sort通過cmp實現對結構體的排序

#include <stdio.h>
#include<iostream>
#include <string.h>
#include<stdlib.h>
using namespace std;
//C語言的qsort與c++語言的sort 
//由於qsort需要使用指標,而且寫法上也沒有C++的sort簡單,
//所以以後使用C++的sort來解決排序問題
struct Student{
	char name[10];
	char id[10];
	int score;
	int r;//排名rank 
}; 
//由於使用sort排名需要提供bool cmp()函式,所以下面定義cmp函式
bool  cmp(Student a,Student b){
	if(a.score!=b.score) return a.score>b.score;//從大到小a>b,從小到大a<b 
	else return strcmp(a.name,b.name)<0;//strcmp是string.h標頭檔案下用來比較兩個char型字串的字典序大小,
	//str1小於str2返回負數 
}
int main(){
	//sort(首位元素地址,末尾元素地址加一,cmp) 
	return 0;
}


相關推薦

C++使用sort通過cmp實現結構排序

#include <stdio.h> #include<iostream> #include <string.h> #include<stdlib.h>

ACM零起點2017-7-25(sort用過載運算子結構排序

上篇文章http://blog.csdn.net/ccnuacmhdu/article/details/76039759 已經用寫cmp函式的方式實現sort對結構體的 排序,下面是通過過載運算子的方式實現sort對結構體進行排序 #include<cstdio&g

sort結構排序

用sort對結構體進行排序步驟如下1.先寫c++標頭檔案# include<iostream># include<algorithm> //這個是sort的標頭檔案 using namespace std; 2.定義一個結構體eg:struct nod

list用remove實現結構成員的刪除

1、使用list,首先要包含list.h標頭檔案,並使用std名稱空間     在標頭檔案中增加如下兩行說明: #include <list>using namespace std; 2、定義結構體,需要在結構體裡寫判斷“==”函式,如下所列,這裡重寫的

水果,一道結構排序的水題

呵呵 print mes problem net 空行 沒有 scanf http 題目鏈接:https://vjudge.net/contest/161356#problem/E 夏天來了~~好開心啊,呵呵,好多好多水果~~ Joe經營著一個不大的水果店.他認為生存之道就

C++利用自帶的sort函式重寫比較規則後結構進行排序-王道機試

/*輸入N輸入N組資料(姓名,年齡,成績)輸入按照成績從高到低排序如果成績相同的情況下,則按照名字的字母排序,再相同的話按照年齡排序  */ #include "iostream" #include "algorithm" #include "string"   using

sort函式結構排序

sort對結構體的排序,需要自定義排序規則,例:需要根據結構體內的某個變數對結構體陣列進行排序 struct fj { int a,b; double c; }f[1005]; bool cmp(fj a,fj b)//fj就是結構體名 { return a.c>

C++:結構中字元陣列賦值時,出現表示式必須是可修改的左值的問題

問題描述:         在C++中為結構體中的字元陣列賦值時,出現”表示式必須是可修改的左值“的錯誤提醒,編譯報錯“不可指定資料型別”。           &n

C++ STL之deque結構的增加,刪除,排序的操作

****************deque的用法******************************** c.assign(beg,end)            將[beg; end)區間中的資料賦值給c。 c.assign(n,elem)         

C語言查缺補漏(七)結構記憶體齊原則

忽略點七:結構體記憶體對齊原則 ​ 直到前幾個星期做了一道選擇題才知道,結構體元素的宣告順序可能影響結構體使用時所需的記憶體大小!!! ​ 一查才知道,在C語言中結構體有記憶體對齊原則,這個原則可以總結為兩點: ——資料成員對齊規則: ​ 結構體或聯合體的資料

通過Ocilib實現Oracle資料庫訪問示例[Unix][Win][C/C++]

目錄 說明 示例 建表 說明 本部落格每天都有乾貨更新,歡迎關注收藏,轉載請註明出名。更多關於Linux的技術學習與交流可加QQ群:927421758。 示例 以下展示各種使用示例。 基本使用方法示例 編碼  //1.c    #i

sort結構進行排序

std::sort()函式的功能很強大,且可以對類,結構體等元素進行排序。首先來看看std中的快速排序演算法sort的使用方法:  template <class RandomAccessIterator, class Compare> void sort (

C語言:結構變數進行氣泡排序

C語言:對結構體變數進行氣泡排序 我是一名在校大學生,初次寫部落格,希望各位大佬不喜勿噴,這個小程式,僅供參考,希望對大家有所幫助。 分析題意: 1.定義結構體變數,並給變數賦值 2.使用氣泡排序進行排序。 定義: 1.Input()函式,接收使用者輸入的值。 2.Output()函

c++ sort()結構排序

#include <iostream> #include <vector> #include <algorithm> using namespace std; typedef struct example { int elem

Java中如何實現結構?如何結構進行排序

***今天在做老師佈置的程式設計題時,遇到了本題。感覺這道題如果用C++來解決的話,用結構體比較好吧!哈哈哈,可能還有其他的好方法,但我目前想到的是用結構體來解決比較合理。Java中有結構體嗎?如果有,它是如何實現的呢?例項和解決方法見下。(前面是Java中有關結構體的一些知

sort函式結構多級排序

(一)為什麼要用c++標準庫裡的排序函式 Sort()函式是c++一種排序方法之一,學會了這種方法也打消我學習c++以來使用的氣泡排序和選擇排序所帶來的執行效率不高的問題!因為它使用的排序方法是類似於快排的方法,時間複雜度為n*log2(n),執行效率較高! (二)c++

c++結構陣列排序

按結構體中某個成員進行排序,下面程式碼以成員b1為升序的排序 程式碼: #include<iostream> #include<algorithm> using namespa

cc++中,結構進行強制型別轉換

有這麼兩個結構體1. struct sockaddr {     unsigned short sa_family;//地址型別     char sa_data[14];//協議地址  } 2. struct sockaddr_in {   

c++調用python系列(1): 結構作為入參及返回結構

pac 格式 lob 打包成 def 程序 png 校驗 upload 最近在打算用python作測試用例以便對遊戲服務器進行功能測試以及壓力測試; 因為服務器是用c++寫的,采用的TCP協議,當前的架構是打算用python構造結構體,傳送給c++層進行socket

C++復合類型(結構

iou .cn blog ges tor 例如 sig leon guests 其實c++的結構體可以理解為類似於python的字典,我個人理解, 但有區別 先看結構 #include <iostream> 關鍵字 標記成為新類型的名