首先關於list容器做個簡要介紹:
list容器中的資料是鏈式儲存,動態分配儲存,不會造成記憶體浪費和溢位
可對任意位置進行快速插入和刪除
不支援隨機訪問迭代器
因為對所有不支援隨機訪問迭代器的容器,不可以用標準演算法,但list內部提供對應一些演算法,比如排序演算法
l.sort()//排序函式--預設公升序,若想讓其實現降序該怎麼辦?
則需要自定義排序規則函式作為引數傳入sort
l1.sort(mysort);
實現資料降序排列的**:
l1.
sort
(mysort)
;bool
mysort
(int v1,
int v2)
下面利用list容器實現自定義型別資料的排序,將自定義person類資料按年齡公升序,若年齡相同則按身高降序排列:
#include
using
namespace std;
#include
#include
class
person
//定義乙個person類
string m_name;
int m_age;
int m_height;};
void
printlist
(list
& l1)
//列印函式
}bool
mysort
(person &p1,person &p2)
else
}void
test01()
intmain()
結果如下:
小白學習中,歡迎交流指正!
C 容器 排序 與搜尋
bool minsort obs a,obs b 容器內壓入內容型別 sort obs all.begin obs all.end minsort 呼叫格式,minsort為排序方式,需在函式外定義.此時obs all中內容順序將會發生變化,類似於對位址進行了操作.通過下面方式可取出相應值 obs ...
STLset容器排序
學習目標 set容器預設排序規則為從小到大,掌握如何改變排序規則 主要技術點 利用仿函式,可以改變排序規則 示例一 include include using namespace std set容器排序 class mycompare void test01 cout endl 指定排序規則為從小到...
c 隨機排序容器中的元素
在各種程式語言中都提供了將容器元素隨機排序的shuffle方法,c 也不例外。不過c 將shuffle放在了中而不是像其他語言一樣在random裡,同時c 17刪除了原先的random shuffle新的程式應該使用c 11新增進去的std shuffle。其中乙個好處是新的函式在可以自定義隨機數生...