From 7afb179185340e87762166edc91bb253d5c9796a Mon Sep 17 00:00:00 2001 From: Shocker Date: Thu, 15 Sep 2011 21:28:40 +0300 Subject: Misc/Util: Add a template function for returning a random element from any container --- src/server/shared/Utilities/Util.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/server/shared') diff --git a/src/server/shared/Utilities/Util.h b/src/server/shared/Utilities/Util.h index 9e17c5417fc..8740a9b6ebd 100755 --- a/src/server/shared/Utilities/Util.h +++ b/src/server/shared/Utilities/Util.h @@ -648,4 +648,13 @@ public: return (part[el]); }; }; + +/* Select a random element from a container. Note: make sure you explicitly empty check the container */ +template typename C::value_type const& SelectRandomContainerElement(C const& container) +{ + C::const_iterator it = container.begin(); + std::advance(it, urand(0, container.size() - 1)); + return *it; +} + #endif -- cgit v1.2.3