List: Refactored listDiff

This commit is contained in:
Paul Beckingham 2015-12-22 08:58:46 -05:00
parent f12df9cec9
commit 7b15ab8c22

View file

@ -88,39 +88,14 @@ template <class T> void listDiff (
const T& left, const T& right, T& leftOnly, T& rightOnly)
{
leftOnly.clear ();
for (auto& l : left)
if (std::find (right.begin (), right.end (), l) == right.end ())
leftOnly.push_back (l);
rightOnly.clear ();
for (unsigned int l = 0; l < left.size (); ++l)
{
bool found = false;
for (unsigned int r = 0; r < right.size (); ++r)
{
if (left[l] == right[r])
{
found = true;
break;
}
}
if (!found)
leftOnly.push_back (left[l]);
}
for (unsigned int r = 0; r < right.size (); ++r)
{
bool found = false;
for (unsigned int l = 0; l < left.size (); ++l)
{
if (left[l] == right[r])
{
found = true;
break;
}
}
if (!found)
rightOnly.push_back (right[r]);
}
for (auto& r : right)
if (std::find (left.begin (), left.end (), r) == left.end ())
rightOnly.push_back (r);
}
#endif