59 void Diff(InputIt1 first1, InputIt1 last1,
60 InputIt2 first2, InputIt2 last2,
61 OutputCont & in1not2, OutputCont & in2not1)
64 typename std::iterator_traits<InputIt1>::iterator_category;
65 static_assert(std::is_convertible_v<in1ItCat, std::input_iterator_tag>,
66 "InputIt1 must be an input iterator");
68 typename std::iterator_traits<InputIt2>::iterator_category;
69 static_assert(std::is_convertible_v<in2ItCat, std::input_iterator_tag>,
70 "InputIt2 must be an input iterator");
78 typename std::iterator_traits<decltype(std::inserter<OutputCont>(in1not2, in1not2.end()))>::iterator_category;
79 static_assert(std::is_convertible_v<outItCat, std::output_iterator_tag>,
80 "OutputCont::iterator does not meet requirements of"
81 " LegacyOutputIterator");
85 set_difference(first1, last1, first2, last2,
86 std::inserter(in1not2, in1not2.end()));
89 set_difference(first2, last2, first1, last1,
90 std::inserter(in2not1, in2not1.end()));
104 void Diff(InputIt1 first1, InputIt1 last1,
105 InputIt2 first2, InputIt2 last2,
106 OutputCont & in1not2, OutputCont & in2not1, Compare comp)
109 typename std::iterator_traits<InputIt1>::iterator_category;
111 typename std::iterator_traits<InputIt2>::iterator_category;
112 static_assert(std::is_convertible_v<in1ItCat, std::input_iterator_tag>,
113 "InputIt1 must be an input iterator");
114 static_assert(std::is_convertible_v<in2ItCat, std::input_iterator_tag>,
115 "InputIt2 must be an input iterator");
122 typename std::iterator_traits<decltype(std::inserter<OutputCont>(in1not2, in1not2.end()))>::iterator_category;
123 static_assert(std::is_convertible_v<outItCat, std::output_iterator_tag>,
124 "OutputCont::iterator does not meet requirements of"
125 " LegacyOutputIterator");
129 set_difference(first1, last1, first2, last2,
130 std::inserter(in1not2, in1not2.end()));
133 set_difference(first2, last2, first1, last1,
134 std::inserter(in2not1, in2not1.end()));
164 void Diff(
const InputCont & in1,
const InputCont & in2,
165 OutputCont & in1not2, OutputCont & in2not1, Compare comp)
167 return Diff(in1.begin(), in1.end(), in2.begin(), in2.end(),
168 in1not2, in2not1, comp);
void Diff(InputIt1 first1, InputIt1 last1, InputIt2 first2, InputIt2 last2, OutputCont &in1not2, OutputCont &in2not1)
Copies elements from the sorted range [first1,last1) which are not found in the sorted range [first2,...
Definition DwmDiff.hh:59