四 c 中的演算法 刪除演算法

2021-08-06 06:34:08 字數 1861 閱讀 5130

刪除演算法指的是刪除容器中滿足相應條件的元素。

1. 被刪除元素會按順序向前移動

2. 不能應用於關聯式容器

3. 關聯式容器的刪除需要使用演算法erase()

4. list容器,可以使用自身成員函式remove()

直接刪除容器的元素

函式原型為:

forwardit remove(forwardit first, forwardit last,

const t& value)

}return result;

}條件刪除演算法。

函式原型;

forwardit remove_if(forwardit first, forwardit last,

unarypredicate p)

}return result;

}說明:

1. 使用的是一元判斷 p

函式用於複製過程中刪除元素。

函式原型為:

//版本一

template

outputit remove_copy(inputit first, inputit last,

outputit d_first, const t& value)

}return d_first;

}//版本二

template

outputit remove_copy_if(inputit first, inputit last,

outputit d_first, unarypredicate p)

}return d_first;

}

說明:

1. 將[first,last)複製到目標區間

2. 形式一: 不複製值等於value的元素

3. 形式二: 不複製是判斷式p為真的元素

4. 返回目標區間的最後乙個元素的後乙個位置

在vector,list ,deque, multiset,multimap容器中允許重複的元素。刪除是可以使用演算法:

- unique()

函式原型:

//版本一

templateforwardit unique(forwardit first, forwardit last)

}return ++result;

}//版本二

templateforwardit unique(forwardit first, forwardit last,

binarypredicate p)

}return ++result;

}

說明:

1. 的第乙個版本使用operator==比較的元素,

2. 第二個版本使用給定的二元謂詞p.

3. 返回唯一元素序列的最後乙個元素的後乙個位置。

函式原型:

//版本一

templateforwardit unique_copy(forwardit first, forwardit last,

outputit d_first)

}return ++d_first;

}//版本二

templateforwardit unique_copy(forwardit first, forwardit last,

outputit d_first, binarypredicate p)

}return ++d_first;

}

說明:

1. 的第乙個版本使用operator==比較的元素,

2. 第二個版本使用給定的二元謂詞p.

3. 返回目標區間的最後乙個元素的後乙個位置。

四 c 中的演算法 變動性演算法 轉換

函式宣告 template class inputit,class outputit,class unaryoperation outputit transform inputit first1,inputit last1,outputit d first,unaryoperation unary ...

四 c 中的演算法 變動性演算法 賦值

stl提供了四個賦值函式 fill fill n generate generate n 說明 1.generate n 和fill n 只給指定區間前n個的那個數值賦值。2.fill 和fill n 用於給每個元素賦予相同的數值 3.generate 和generate n 在執行時呼叫函式的子程...

C 中四種排序演算法

氣泡排序 using system namespace bubblesorter public class mainclass bubblesorter sh new bubblesorter sh.sort iarrary for int m 0 m iarrary.length m consol...