C 容器 排序

2021-10-12 10:25:09 字數 1024 閱讀 9246

首先關於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。其中乙個好處是新的函式在可以自定義隨機數生...