TrinityCore
Containers.h File Reference
#include "Define.h"
#include "MapUtils.h"
#include "Random.h"
#include <algorithm>
#include <iterator>
#include <span>
#include <stdexcept>
#include <type_traits>
#include <utility>
#include <vector>
+ Include dependency graph for Containers.h:

Go to the source code of this file.

Classes

class  Trinity::CheckedBufferOutputIterator< T >
 

Namespaces

namespace  Trinity
 
namespace  Trinity::Containers
 
namespace  Trinity::Containers::Impl
 

Functions

template<class C >
void Trinity::Containers::RandomResize (C &container, std::size_t requestedSize)
 
template<class C , class Predicate >
void Trinity::Containers::RandomResize (C &container, Predicate &&predicate, std::size_t requestedSize)
 
template<class C >
auto Trinity::Containers::SelectRandomContainerElement (C const &container) -> typename std::add_const< decltype(*std::begin(container))>::type &
 
template<class C >
auto Trinity::Containers::SelectRandomWeightedContainerElement (C const &container, std::span< double > const &weights) -> decltype(std::begin(container))
 
template<class C , class Fn >
auto Trinity::Containers::SelectRandomWeightedContainerElement (C const &container, Fn weightExtractor) -> decltype(std::begin(container))
 
template<class Iterator >
void Trinity::Containers::RandomShuffle (Iterator begin, Iterator end)
 Reorder the elements of the iterator range randomly. More...
 
template<class C >
void Trinity::Containers::RandomShuffle (C &container)
 Reorder the elements of the container randomly. More...
 
template<class Iterator1 , class Iterator2 >
bool Trinity::Containers::Intersects (Iterator1 first1, Iterator1 last1, Iterator2 first2, Iterator2 last2)
 
template<class Iterator1 , class Iterator2 , class Predicate >
bool Trinity::Containers::Intersects (Iterator1 first1, Iterator1 last1, Iterator2 first2, Iterator2 last2, Predicate &&equalPred)
 
template<typename Container , typename Predicate >
void Trinity::Containers::Impl::EraseIfMoveAssignable (Container &c, Predicate p)
 
template<typename Container , typename Predicate >
void Trinity::Containers::Impl::EraseIfNotMoveAssignable (Container &c, Predicate p)
 
template<typename Container , typename Predicate >
void Trinity::Containers::EraseIf (Container &c, Predicate p)
 
template<typename T >
decltype(auto) Trinity::Containers::EnsureWritableVectorIndex (std::vector< T > &vec, typename std::vector< T >::size_type i)
 
template<typename T >
decltype(auto) Trinity::Containers::EnsureWritableVectorIndex (std::vector< T > &vec, typename std::vector< T >::size_type i, T const &resizeDefault)