template <class InputIterator1, class InputIterator2> bool includes ( InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2 ); |
template <class InputIterator1, class InputIterator2, class Compare> bool includes ( InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, Compare comp ); |
template <class InputIterator1, class InputIterator2> bool includes (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2) { while (first2!=last2) { if ( (first1==last1) || (*first2<*first1) ) return false; if (!(*first1<*first2)) ++first2; ++first1; } return true; } |
// includes algorithm example #include <iostream> // std::cout #include <algorithm> // std::includes, std::sort bool myfunction (int i, int j) { return i<j; } int main () { int container[] = {5,10,15,20,25,30,35,40,45,50}; int continent[] = {40,30,20,10}; std::sort (container,container+10); std::sort (continent,continent+4); // using default comparison: if ( std::includes(container,container+10,continent,continent+4) ) std::cout << "container includes continent!\n"; // using myfunction as comp: if ( std::includes(container,container+10,continent,continent+4, myfunction) ) std::cout << "container includes continent!\n"; return 0; } |
search | 搜索范围的子序列(函数模板) |
find_end | 求范围内的最后一个子序列(函数模板) |
equal | 测试两个范围内的元素是否相等(函数模板) |