From d1cbc06c67a89528f4a8c03a0e37c6582635497a Mon Sep 17 00:00:00 2001 From: graham Date: Wed, 10 Nov 2010 10:50:59 +0000 Subject: [PATCH] ENH: UList shuffle function to randomly reorder a list. --- src/OpenFOAM/containers/Lists/UList/UList.C | 7 +++++++ src/OpenFOAM/containers/Lists/UList/UList.H | 3 +++ 2 files changed, 10 insertions(+) diff --git a/src/OpenFOAM/containers/Lists/UList/UList.C b/src/OpenFOAM/containers/Lists/UList/UList.C index 7f3e63d421..25334db0c5 100644 --- a/src/OpenFOAM/containers/Lists/UList/UList.C +++ b/src/OpenFOAM/containers/Lists/UList/UList.C @@ -145,6 +145,13 @@ void Foam::stableSort(UList& a, const Cmp& cmp) } +template +void Foam::shuffle(UList& a) +{ + std::random_shuffle(a.begin(), a.end()); +} + + // * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * // template diff --git a/src/OpenFOAM/containers/Lists/UList/UList.H b/src/OpenFOAM/containers/Lists/UList/UList.H index d0cb05fc17..4a4dd598d9 100644 --- a/src/OpenFOAM/containers/Lists/UList/UList.H +++ b/src/OpenFOAM/containers/Lists/UList/UList.H @@ -344,6 +344,9 @@ void stableSort(UList&); template void stableSort(UList&, const Cmp&); +template +void shuffle(UList&); + // Reverse the first n elements of the list template inline void reverse(UList&, const label n);