Includes:
//TEMPLATE FUNCTION includes with PREDtemplate<class_init1,class_init2,class_pr>inlineBOOL_includes (_init1 _first1, _init1 _last1, _init2 _first2, _init2 _last2, _pr _pred) {//test if set [_first1, _last1) in [_first2, _last2), using _pred for(; _first1! = _last1 && _first2! =_last2;) if(_debug_lt_pred (_pred, *_first2, *_first1)) return(false); Else if(_pred (*_first1, *_first2)) ++_first1; Else { //Advance both++_first1; ++_first2; } return(_first2 = =_last2); }template<class_init1,class_init2,class_pr>inlineBOOLincludes (_init1 _first1, _init1 _last1, _init2 _first2, _init2 _last2, _pr _pred) {//test if set [_first1, _last1) in [_first2, _last2), using _pred_debug_order_pred (_first1, _last1, _pred); _debug_order_pred (_first2, _last2, _pred); return(_includes (_unchecked (_first1), _unchecked (_last1), _unchecked (_first2), _unchecked (_last2), _Pred)); } //TEMPLATE FUNCTION includestemplate<class_init1,class_init2>inlineBOOLincludes (_init1 _first1, _init1 _last1, _init2 _first2, _init2 _last2) {//test if all [_first1, _last1] in [_first2, _last2), using operator< return(_STD includes (_first1, _last1, _first2, _last2, less<>())); }
In the C + + standard Library (second edition, 3rd print), it is noted that the complexity of this algorithm is up to (Numelems+numsearchelems) -1comparisons.
C + + algorithm real Source analysis