diff options
author | Kinzcool <kinzzcool@hotmail.com> | 2014-06-01 13:42:07 -0400 |
---|---|---|
committer | Kinzcool <kinzzcool@hotmail.com> | 2014-06-01 13:42:07 -0400 |
commit | edced305769dc3bb0a3ef2262e5673b235120f16 (patch) | |
tree | 286d892035daa7d50588473eb95561e62e634908 /src/server/shared/Containers.h | |
parent | 6bc62d730ed08e6e12d9b57d4914e98019298781 (diff) | |
parent | 26370223a0b9ab7b9542a6a727347063397f0fa7 (diff) |
Merge branch 'master' of https://github.com/TrinityCore/TrinityCore into 4.3.4
Diffstat (limited to 'src/server/shared/Containers.h')
-rw-r--r-- | src/server/shared/Containers.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/server/shared/Containers.h b/src/server/shared/Containers.h index d6ba98e4ed4..9121fbe2a97 100644 --- a/src/server/shared/Containers.h +++ b/src/server/shared/Containers.h @@ -64,6 +64,34 @@ namespace Trinity std::advance(it, urand(0, container.size() - 1)); return *it; } + + /** + * @fn bool Trinity::Containers::Intersects(Iterator first1, Iterator last1, Iterator first2, Iterator last2) + * + * @brief Checks if two SORTED containers have a common element + * + * @param first1 Iterator pointing to start of the first container + * @param last1 Iterator pointing to end of the first container + * @param first2 Iterator pointing to start of the second container + * @param last2 Iterator pointing to end of the second container + * + * @return true if containers have a common element, false otherwise. + */ + template<class Iterator1, class Iterator2> + bool Intersects(Iterator1 first1, Iterator1 last1, Iterator2 first2, Iterator2 last2) + { + while (first1 != last1 && first2 != last2) + { + if (*first1 < *first2) + ++first1; + else if (*first2 < *first1) + ++first2; + else + return true; + } + + return false; + } } //! namespace Containers } |