泛型演算法只equal
阿新 • • 發佈:2018-12-21
校驗兩個區間是否相等
bool equal (InputIterator1 beg, InputIterator1 end,InputIterator2 cmpBeg);
bool equal (InputIterator1 beg, InputIterator1 end,InputIterator2 cmpBeg,BinaryPredicate op);
- 第一種形式判斷區間[beg,end]內的元素是否與cmpBeg開頭的元素一一相等。
- 第二種形式判斷第一個區間內的元素與第二個區間內的元素一一對應都使二元謂語op返回true;
- op不應在執行過程中改變狀態,也不應該改變元素的內容。
- 呼叫者必須確保cmpBeg後面有足夠的元素與第一個區間比較。
例:
bool fun(int n,int m) { return n * 2 == m; } int main() { vector<int>v{ 1,2,3,4 }; list<int>lst{ 1,2,3,4 }; cout << equal(v.begin(), v.end(), lst.begin())<<ends; cout<<equal(v.begin(), v.end(), lst.begin(), fun); return 0; }
輸出結果:1 0