最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

五、泛型算法(二)

2023-02-15 18:36 作者:努力賺錢養(yǎng)朵朵  | 我要投稿


本節(jié)主要分8個(gè)部分介紹一些常用泛型算法。

下列函數(shù)的參數(shù)列表中:

1)b、m和e是表示元素范圍的迭代器。

2)b2是表示第二個(gè)序列開始位置的迭代器。e2表示第二個(gè)序列的末尾位置。如果沒有e2,則假定b2指向的序列與b和e表示的序列一樣大。

3)d是表示目的序列的迭代器。注意,算法需要向目的序列寫入多少元素,目的序列必須保證能保存同樣多的元素。通常,d可以與b相同,表示直接在原序列上進(jìn)行修改。

4)val、val1、val2是一些要進(jìn)行比較的值。

5){a,b,c,...}是初始值列表,列表內(nèi)元素不限個(gè)數(shù)。

6)p1和p2分別表示一元和二元謂詞,分別接受一個(gè)和兩個(gè)參數(shù)。

§I?只讀算法

※ equal函數(shù)在結(jié)合反向迭代器后可用于判斷一個(gè)字符串是否是回文字符串,代碼如下:


§II?寫算法

????注意,寫算法無(wú)法改變底層容器的大小。

?對(duì)于remove(移除)和unique(去重)系列函數(shù),其中的“刪除”操作并未真正刪除元素(即不改變?nèi)萜鞔笮。盒退惴ǖ奶攸c(diǎn)),只是用要保留的元素覆蓋了要?jiǎng)h除的元素,最終使要保留的元素留在序列前端。

為了刪除元素,可以在remove或unique的基礎(chǔ)上結(jié)合容器的erase方法,實(shí)現(xiàn)刪除元素(且改變?nèi)萜鞔笮。┑男Ч?/span>例如:

※ 注:unique函數(shù)只會(huì)對(duì)相鄰的重復(fù)元素去重,若想對(duì)整個(gè)序列去重則需要先將序列排序。


§III?排序與劃分算法

排序算法(默認(rèn)升序)

partial_sort和nth_element都是未完成的快排。

劃分算法


§IV?有序序列上的泛型算法(使用前要確保序列有序

二分查找

集合算法

注:定義目的序列時(shí)需要先指定其容器大小。例如:

序列合并算法

inplace_merge用于一個(gè)序列中包含兩段有序序列的情況,但實(shí)際情況中是需要預(yù)先找到兩序列分界處的位置的,例如:


* §V 堆操作算法


§VI?排列算法


§VII?最大最小值算法


§VIII?數(shù)值算法


※ list容器特有的算法

注意,因list容器底層的數(shù)據(jù)結(jié)構(gòu)是雙向鏈表,故使用其成員函數(shù)版本的算法比使用通用泛型算法更好(因?yàn)榉盒退惴ń粨Qlist的元素時(shí)代價(jià)太高)。下列常用list成員函數(shù)版本的算法

因?yàn)榇颂幍膔emove和unique本身就是list的成員函數(shù),所以刪除時(shí)會(huì)直接從容器中刪除并改變?nèi)萜鞔笮 #ㄗ⒁馀c泛型算法中的remove和unique區(qū)別)

五、泛型算法(二)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
佛山市| 天祝| 仙游县| 饶阳县| 蕲春县| 昌邑市| 西畴县| 石渠县| 武清区| 环江| 都安| 罗江县| 泽库县| 厦门市| 尉犁县| 慈溪市| 胶南市| 盐边县| 东莞市| 定兴县| 宁陕县| 河北区| 宝坻区| 定南县| 东山县| 雷山县| 勃利县| 宁南县| 鹤壁市| 新晃| 三明市| 河北省| 开封市| 布拖县| 陇西县| 宁武县| 老河口市| 黑龙江省| 旬阳县| 江陵县| 虎林市|