list容器之排序案例

2021-10-19 08:50:14 字數 1195 閱讀 5702

案例描述:

將per型別進行排序,per屬性中有姓名,年齡,身高,體重

排序規則:按照年齡進行公升序排列,如果年齡相同按照身高進行降序排列,如果身高相同按照體重進行公升序排列

原始碼如下:

#include

using

namespace std;

#include

#include

class

per;

//有參建構函式初始化

per::

per(string name,

int age,

int height,

int weight)

//指定排序規則的函式宣告

bool

compareperson

(per& p1, per& p2)

;//列印函式宣告

void

print

(list

& person)

;//建立相關per型別物件,並放入list容器中,排序然後輸出最後結果

void

headwork()

;//對list容器中自定義型別元素進行排序

person.

sort

(compareperson)

;//排完序後列印

print

(person);}

//指定排序規則

bool

compareperson

(per& p1,per& p2)

else

}else

}//列印函式

注意問題:排序規則需要自己去寫,詳情看制定規則的函式**

list容器是雙端迴圈容器,不支援隨機跳躍訪問,不能用和at方式的訪問

因為標準演算法庫裡面的sort排序函式只支援可以隨機跳躍訪問的容器,因此list內部有自己的一套sort排序函式,無需新增標準演算法標頭檔案,通過物件名訪問

STL通用容器之 list 容器

list容器 相對於vector的連續線性空間,list是乙個雙向鍊錶,它有乙個重要性質 插入操作和刪除操作都不會造成原有的list迭 器失效,每次插入或刪除乙個元素,就配置或釋放乙個元素空間。也就是說,對於任何位置的元素插入或刪除,list 遠是常數時間。1 建構函式 listc 建立乙個空的li...

Go標準容器之List

go的標準包container中包含了常用的容器型別,包括conatiner list,container heap,container ring。本篇介紹conatiner list。conatiner list實現了乙個雙向鍊錶。使用起來與其他語言的動態列表非常相似,3秒鐘便可入門。packag...

18 容器之list探索

本篇主要在之前的基礎上,更加深入的介紹stl中的雙向鍊錶容器list,包括list類模板 迭代器iterator等。1 容器list是雙向鍊錶的結構,如下 解析 a list是環狀的鏈式結構,在鍊錶最後有塊空白節點用於實現容器的前閉後開區間,用end 方法返回。b 鍊錶中包含迭代器node,裡面包含...