From a0b5db4c8944032985168ac13feb5c0016d9fc58 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Tue, 22 Dec 2015 08:57:35 -0500 Subject: [PATCH] Common: Refactored listDiff --- src/common/text.h | 40 ++++++++-------------------------------- 1 file changed, 8 insertions(+), 32 deletions(-) diff --git a/src/common/text.h b/src/common/text.h index 7ef3607c..b753c094 100644 --- a/src/common/text.h +++ b/src/common/text.h @@ -28,6 +28,7 @@ #define INCLUDED_TEXT #include +#include #include #include @@ -75,39 +76,14 @@ template 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