Repo created

This commit is contained in:
Fr4nz D13trich 2025-11-22 13:58:55 +01:00
parent 4af19165ec
commit 68073add76
12458 changed files with 12350765 additions and 2 deletions

View file

@ -0,0 +1,29 @@
#pragma once
// Similar to set_difference(), but if element is present n times in the first sequence and once in
// the second sequence, all n copies are filtered, insted of one.
template <typename Iter1T, typename Iter2T, typename OutIterT, typename LessT>
OutIterT SetDifferenceUnlimited(Iter1T beg1, Iter1T end1, Iter2T beg2, Iter2T end2, OutIterT out, LessT lessCompare)
{
while (beg1 != end1 && beg2 != end2)
{
if (lessCompare(*beg1, *beg2))
{
*out = *beg1;
++beg1;
++out;
}
else if (lessCompare(*beg2, *beg1))
{
++beg2;
}
else
{
++beg1;
// This is the difference between set_difference and this function:
// In set_difference the commented line should be present.
// ++beg2;
}
}
return std::copy(beg1, end1, out);
}