STL中主要的演算法 一

2021-09-06 22:48:40 字數 2372 閱讀 9086

一。replace()

替換演算法將指定元素值替換為新值,使用原型例如以下,將迭代器[first,last)中值為old_value的元素所有替換為new_value值。

函式原型:

template

< class forwarditerator, class t >  

void replace ( forwarditerator first, forwarditerator last,  

const t& old_value, const t& new_value );  

引數說明:

first, last 指出要替換的迭代器區間[first,last) old_value 將要被替換的元素值 new_value 將要替換舊值的新值

二、swap()

我們先來看看swap的函式原型:

template

void swap ( t& a, t& b )  

三、copy()

元素複製演算法copy。該演算法主要用於容器之間元素的拷貝,即將迭代器區間[first,last)的元素拷貝到由複製目標result給定的區間[result,result+(last-first))中。以下我們來看看它的函式原型:

函式原形:

template

outputiterator copy(  

inputiterator _first,   

inputiterator _last,   

outputiterator _destbeg  

);  

_first, _last

指出被複製的元素的區間範圍[ _first,_last).

_destbeg 

指出拷貝到的目標區間起始位置

返回乙個迭代器,指出已被複製的最後乙個元素的下乙個位置

四、copy_backward()

copy_backward演算法與copy在行為方面相似,僅僅只是它的複製過程與copy背道而馳,其複製過程是從最後的元素開始複製,直到首元素複製出來。也就是說,複製操作是從last-1開始,直到first結束。這些元素也被從後向前拷貝到目標容器中,從result-1開始,一直複製last-first個元素。舉個簡單的樣例:已知vector ,現我們須要把最後三個元素(3, 4, 5)拷貝到前面三個(0, 1, 2)位置中,那我們能夠這樣設定:將first設定值3的位置,將last設定為5的下乙個位置,而result設定為3的位置,這樣,就會先將值5拷貝到2的位置,然後4拷貝到1的位置,最後3拷貝到0的位置,得到我們所要的序列。以下我們來看一下copy_backward的函式原型:

函式原型:

template

bidirectionaliterator2 copy_backward ( bidirectionaliterator1 first,  

bidirectionaliterator1 last,  

bidirectionaliterator2 result);   

引數:

first, last

指出被複製的元素的區間範圍[first,last).

result

指出拷貝到目標區間的詳細位置[result-(last-first),result)

返回值:

返回乙個迭代器,指出已被複製元素區間的起始位置

五、find_end()

find_end演算法在乙個序列中搜尋出最後乙個與還有一串行匹配的子串行。有例如以下兩個函式原型,在迭代器區間[first1, last1)中搜尋出與迭代器區間[first2, last2)元素匹配的子串行,返回首元素的迭代器或last1。

函式原型:

template

forwarditerator1 find_end(  

forwarditerator1 _first1,   

forwarditerator1 _last1,  

forwarditerator2 _first2,   

forwarditerator2 _last2  

);  

template

forwarditerator1 find_end(  

forwarditerator1 _first1,   

forwarditerator1 _last1,  

forwarditerator2 _first2,   

forwarditerator2 _last2,  

binarypredicate _comp  

);  

STL中的equal演算法

bool equal inputit1 first1,inputit1 last1,inputit2 first2 first1,last1 the first range of the elements to compare first2 the beginning element of the ...

STL中的查詢演算法

stl中有很多演算法,這些演算法可以用到乙個或多個stl容器 因為stl的乙個設計思想是將演算法和容器進行分離 也可以用到非容器序列比如陣列中。眾多演算法中,查詢演算法是應用最為普遍的一類。單個元素查詢 1 find 比較條件為元素是否相等的查詢 template inputiterator fin...

STL中的sort演算法

上圖表明了關於sort演算法的兩大要點 sort randomacessiterator it1,randomacessiterator it1 即,sort演算法的輸入形參是兩個,而且必須都是隨機迭代器 貌似只有vector和deque滿足?sort預設的排序結果是從小到大。關於stl的sort演...