GeekBand C++ Week8 notes

Week8 Notes

變易算法:

copy:對象拷貝

templateinline

OutIt copy(InIt_First, _InIt _Last, _OutIt _Dest)

Copy_backward:少一個參數(shù)

Copy_if:多一個判斷函數(shù)

Swap:交換對象

Swap_ranges:交換某個區(qū)域的對象

Transform:函數(shù)作用后放入指定區(qū)間

也可以對函數(shù)輸入兩個區(qū)域的變量

replace:舊值替換為新值

replace_copy,先拷貝再替換

fill:把val賦值給所有元素

generate

remove,remove_if:移除某個數(shù)或符合條件的數(shù)

remove_copu先拷貝再移除

unique,返回的是迭代器

reverse,rotate

排序算法

sorting

template inline

void sort(_RanIt _First, _RanIt _Last)

需要提供operator <

int elements[] = {-1, 2, 3, -100, 200, 5};

std::vector v(elements,elements+6);

std::sort(v.begin(), v.end());

binary_search

templateinline

bool binary_search(_FwdIt _First, _FwdIt_Last, const _Ty& _Val)

在容器中查找等于val的元素,首先要排序

merge

將排好序的兩個區(qū)間元素合并到dest

基于排序集合的一些算法

includes

set_union

set_intersection

set_difference

templateinline

bool includes(_InIt1 _First1, _InIt1_Last1, _InIt2 _First2, _InIt2 _Last2)

判別一個區(qū)間中是否包含另一個區(qū)間中的函數(shù),這兩個區(qū)間都是排好序的

set operations

基于堆得算法

make_heap

push_heap

pop_heap

sort_heap

make_heap

template inline

void make_heap (_RanIt _First, _RanIt_Last)

將區(qū)間轉(zhuǎn)換成一個堆

對結(jié)構采用max_heap來維持平衡二叉樹

int elements[] = {1, 4, 200, 8, 100, 5, 7};

cons tint n = sizeof(elements)/sizeof(int);

std::make_heap(elements, elements+n);

push_heap

template inline

void push_heap(_RanIt _First, _RanIt _Last)

向堆中添加一個元素,算法的前提是假設這個區(qū)間已經(jīng)是一個堆,堆結(jié)構采用max_heap,維持平衡二叉樹

heap算法pop_heap

templateinline

void pop_heap(_RanIt, _RanIt _Last)

從堆中彈出一個元素,該算法的前提是假設該區(qū)間已經(jīng)是個堆,被彈出的對元素是根頂元素

堆結(jié)構采用max_heap,維持平衡二叉樹

heap算法sort_heap

將堆中的元素進行排序,sort的做法是不斷pop_heap,因為每次pop都可以獲得堆中最大元素

泛型數(shù)值算法

泛型數(shù)值算法包含在頭文件中

包括

accumulate

inner_product

partial_sum

adjacent_difference

accumulate

對區(qū)間中的每個元素進行累加,也可以加func

inner_product,默認加,可以自己加函數(shù)

partial_sum

到每一位的和;

也可以到每一位的函數(shù)作用

adjacent_difference

和partial_sum反一下,函數(shù)作用在當前元素和上一個元素上。

內(nèi)存分配器

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容