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

歡迎光臨散文網(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ó)家法律
固始县| 太原市| 嘉鱼县| 栾城县| 石家庄市| 玛纳斯县| 临城县| 荣成市| 准格尔旗| 任丘市| 农安县| 白银市| 澄城县| 苍南县| 香河县| 禄丰县| 阿合奇县| 盐源县| 城固县| 赞皇县| 丘北县| 天柱县| 鄂伦春自治旗| 华宁县| 芜湖县| 乐陵市| 谢通门县| 肃南| 丰顺县| 阿勒泰市| 丹东市| 南投市| 慈利县| 罗田县| 阿克苏市| 南开区| 惠州市| 阿拉善左旗| 集贤县| 望谟县| 库伦旗|