From c27af57546fd5cbd3946cc754905bf32665f84aa Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Mon, 26 Oct 2015 09:23:45 +0100 Subject: [PATCH] sort using lambda --- pub/lib/manip.cpp | 13 ++++++++++++- pub/lib/slice.cpp | 16 ---------------- pub/lib/slice.hpp | 5 ----- 3 files changed, 12 insertions(+), 22 deletions(-) diff --git a/pub/lib/manip.cpp b/pub/lib/manip.cpp index 14dea044..a6cf2b7d 100644 --- a/pub/lib/manip.cpp +++ b/pub/lib/manip.cpp @@ -757,7 +757,18 @@ void NManip::slices_sort_by_z() POlo fout( fin->new_olo() ); for (int j=0; j<fin->nJ(); j++) fout->V.push_back( fin->new_slice( j ) ); - sort( fout->V.begin(), fout->V.end(), CompareZ ); + sort( fout->V.begin(), fout->V.end(), []( const RSlice& E1, const RSlice& E2 ) { + if( E1->z.size()!=E2->z.size() ) + throw S("BUG: inconsistent z.size in CompareZ"); + int nz = E1->z.size(); + for( int iz=0; iz<nz; ++iz ){ + if ( E1->z[iz]->to_r() > E2->z[iz]->to_r() ) + return false; + if ( E1->z[iz]->to_r() < E2->z[iz]->to_r() ) + return true; + } + return false; + } ); NOlm::mem_store( fout, fiter.k() ); } } diff --git a/pub/lib/slice.cpp b/pub/lib/slice.cpp index 115f1d72..ac8a4df7 100644 --- a/pub/lib/slice.cpp +++ b/pub/lib/slice.cpp @@ -52,22 +52,6 @@ vector<string> CSlice::z_str() const return ret; } -//! Compares z vectors of two CSlice', for use in sort routine. - -bool CompareZ( const RSlice& E1, const RSlice& E2 ) -{ - if( E1->z.size()!=E2->z.size() ) - throw S("BUG: inconsistent z.size in CompareZ"); - int nz = E1->z.size(); - for( int iz=0; iz<nz; ++iz ){ - if ( E1->z[iz]->to_r() > E2->z[iz]->to_r() ) - return false; - if ( E1->z[iz]->to_r() < E2->z[iz]->to_r() ) - return true; - } - return false; -} - //************************************************************************************************** //* class CSpec diff --git a/pub/lib/slice.hpp b/pub/lib/slice.hpp index 48cae719..39f83093 100644 --- a/pub/lib/slice.hpp +++ b/pub/lib/slice.hpp @@ -65,8 +65,3 @@ class CCurve: public CSlice { bool has_global_par() const; string info_line() const; }; - - -//! at global scope, for use in sorting. - -bool CompareZ( const RSlice& E1, const RSlice& E2 ); -- GitLab