案例描述:
將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,裡面包含...