diff options
author | Shocker <shocker@freakz.ro> | 2011-09-15 21:28:40 +0300 |
---|---|---|
committer | Shocker <shocker@freakz.ro> | 2011-09-15 21:28:40 +0300 |
commit | 7afb179185340e87762166edc91bb253d5c9796a (patch) | |
tree | 47bcadb956285c41626a17dbe48d80cb431c2917 /src/server/shared/Utilities/Util.h | |
parent | 8504a0107ea679e8cac7f87cccb05b1d2bedd8b4 (diff) |
Misc/Util: Add a template function for returning a random element from any container
Diffstat (limited to 'src/server/shared/Utilities/Util.h')
-rwxr-xr-x | src/server/shared/Utilities/Util.h | 9 |
1 files changed, 9 insertions, 0 deletions
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 <class C> 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 |