请教下,STL中并集算法的使用方法
请教下,STL中并集算法的使用方法。帮我写个例子,要求,输入参数是两个set<string>,或者vector<string>。输出也是。分两种情况,一种自己写比较函数,一种不用写比较函数。谢谢
[解决办法]
http://www.cplusplus.com/reference/algorithm/set_union/
例子自己慢慢写啊,程序设计没有懒可以偷的。
[解决办法]
- C/C++ code
template <class _InputIter1, class _InputIter2, class _OutputIter, class _Compare>_OutputIter set_union(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _OutputIter __result, _Compare __comp) { __STL_REQUIRES(_InputIter1, _InputIterator); __STL_REQUIRES(_InputIter2, _InputIterator); __STL_REQUIRES(_OutputIter, _OutputIterator); __STL_REQUIRES_SAME_TYPE( typename iterator_traits<_InputIter1>::value_type, typename iterator_traits<_InputIter2>::value_type); __STL_BINARY_FUNCTION_CHECK(_Compare, bool, typename iterator_traits<_InputIter1>::value_type, typename iterator_traits<_InputIter2>::value_type); while (__first1 != __last1 && __first2 != __last2) { if (__comp(*__first1, *__first2)) { *__result = *__first1; ++__first1; } else if (__comp(*__first2, *__first1)) { *__result = *__first2; ++__first2; } else { *__result = *__first1; ++__first1; ++__first2; } ++__result; } return copy(__first2, __last2, copy(__first1, __last1, __result));}