刪除演算法指的是刪除容器中滿足相應條件的元素。
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...