std::experimental::ranges::mismatch
定義於標頭檔案 <experimental/ranges/algorithm> |
||
template< InputIterator I1, Sentinel<I1> S1, InputIterator I2, Sentinel<I2> S2, class Proj1 = ranges::identity, class Proj2 = ranges::identity, |
(1) | (ranges TS) |
template< InputRange R1, InputRange R2, class Proj1 = ranges::identity, class Proj2 = ranges::identity, |
(2) | (ranges TS) |
template< InputIterator I1, Sentinel<I1> S1, class I2, class Pred = ranges::equal_to<>, |
(3) | (ranges TS) (已棄用) |
template< InputRange R1, class I2, class Pred = ranges::equal_to<>, class Proj1 = ranges::identity, class Proj2 = ranges::identity > |
(4) | (ranges TS) (已棄用) |
[
first1,
last1)
定義,另一個由 [
first2,
last2)
定義。元素使用 pred 與兩個範圍的投影元素進行比較,如同透過 ranges::invoke(pred, ranges::invoke(proj1, *i), ranges::invoke(proj2, *j))。
儘管上述宣告所示,演算法宣告的實際模板引數數量和順序未指定。因此,如果在呼叫演算法時使用顯式模板引數,程式可能不可移植。
目錄 |
[編輯] 引數
first1, last1 | - | 元素的第一個範圍 |
r1 | - | 元素的第一個範圍 |
first2, last2 | - | 元素的第二個範圍 |
r2 | - | 元素的第二個範圍 |
first2_ | - | 元素第二個範圍的起始 |
pred | - | 應用於投影元素的謂詞 |
proj1 | - | 應用於第一個範圍元素的投影。 |
proj2 | - | 應用於第二個範圍元素的投影。 |
[編輯] 返回值
一個 `tagged_pair` 物件,包含指向前兩個不相等元素的迭代器(來自第一個範圍的迭代器帶有標籤 in1,來自第二個範圍的迭代器帶有標籤 in2)。
如果在比較達到 last1 或 last2(以先發生者為準)時沒有找到不匹配,則該對包含結束迭代器和來自另一個範圍的相應迭代器。
[編輯] 複雜度
至多 last1 - first1 次謂詞和各投影的應用。
[編輯] 可能實現
template<InputIterator I1, Sentinel<I1> S1, InputIterator I2, Sentinel<I2> S2, class Proj1 = ranges::identity, class Proj2 = ranges::identity, class Pred = ranges::equal_to<>> requires IndirectRelation<Pred, projected<I1, Proj1>, projected<I2, Proj2>> auto mismatch(I1 first1, S1 last1, I2 first2, S2 last2, Pred pred = Pred{}, Proj1 proj1 = Proj1{}, Proj2 proj2 = Proj2{}) -> ranges::tagged_pair<tag::in1(I1), tag::in2(I2)> { while (first1 != last1 && first2 != last2 && ranges::invoke(pred, ranges::invoke(proj1, *first1), ranges::invoke(proj2, *first2))) { ++first1; ++first2; } return {first1, first2}; } |
[編輯] 示例
本節不完整 原因:無示例 |
[編輯] 參閱
尋找兩個範圍開始不同的第一個位置 (函式模板) | |
判斷兩組元素是否相同 (函式模板) | |
尋找第一個滿足特定條件的元素 (函式模板) | |
如果一個範圍在字典上小於另一個範圍,則返回 true (函式模板) | |
搜尋元素範圍 (函式模板) |