List: Refactored listDiff
This commit is contained in:
39
src/main.h
39
src/main.h
@@ -88,39 +88,14 @@ template <class T> void listDiff (
|
|||||||
const T& left, const T& right, T& leftOnly, T& rightOnly)
|
const T& left, const T& right, T& leftOnly, T& rightOnly)
|
||||||
{
|
{
|
||||||
leftOnly.clear ();
|
leftOnly.clear ();
|
||||||
|
for (auto& l : left)
|
||||||
|
if (std::find (right.begin (), right.end (), l) == right.end ())
|
||||||
|
leftOnly.push_back (l);
|
||||||
|
|
||||||
rightOnly.clear ();
|
rightOnly.clear ();
|
||||||
|
for (auto& r : right)
|
||||||
for (unsigned int l = 0; l < left.size (); ++l)
|
if (std::find (left.begin (), left.end (), r) == left.end ())
|
||||||
{
|
rightOnly.push_back (r);
|
||||||
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]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user