Namespaces | |
namespace | Concrete |
namespace | DataStructures |
namespace | Private |
Classes | |
class | Association |
An Association pairs key values with (possibly multiple or none) mapped_type values. Like Mapping<>, but allowing multiple items associated with 'key'. More... | |
class | Bijection |
Bijection allows for the bijective (1-1) association of two elements. More... | |
class | Collection |
A Collection<T> is a container to manage an un-ordered collection of items, without equality defined for T. More... | |
class | DataHyperRectangle |
class | DenseDataHyperRectangle |
class | Deque |
class | KeyedCollection |
a cross between Mapping<KEY, T> and Collection<T> and Set<T> More... | |
struct | KeyedCollection_DefaultTraits |
class | Mapping |
class | MultiSet |
class | Queue |
A Queue is a first-in-first-out (FIFO) data structure, where elements are arranged in well-ordered fashion, from HEAD to TAIL. More... | |
class | Sequence |
A generalization of a vector: a container whose elements are keyed by the natural numbers. More... | |
class | Set |
Set<T> is a container of T, where once an item is added, additionally adds () do nothing. More... | |
class | SortedAssociation |
class | SortedCollection |
A SortedCollection is a Collection<T> which remains sorted (iteration produces items sorted) even as you add and remove entries. More... | |
class | SortedKeyedCollection |
A SortedKeyedCollection is a KeyedCollection<T> which remains sorted (iteration produces items sorted) even as you add and remove entries. More... | |
class | SortedMapping |
class | SortedMultiSet |
class | SortedSet |
class | SparseDataHyperRectangle |
class | Stack |
Concepts | |
concept | IKeyedCollection_ExtractorCanBeDefaulted |
concept | Mapping_IKey |
document requirements for a Mapping key | |
concept | Mapping_IMappedValue |
document requirements for a Mapping value | |
Typedefs | |
template<typename T , size_t N> | |
using | DataHyperRectangleN = typename Private_DataHyperRectangle_::template NTemplate< T, DataHyperRectangle >::template Helper_< make_index_sequence< N > >::CombinedType |
template<typename T , size_t N> | |
using | DenseDataHyperRectangleN = typename Private_DataHyperRectangle_::template NTemplate< T, DenseDataHyperRectangle >::template Helper_< make_index_sequence< N > >::CombinedType |
template<typename T , size_t N> | |
using | SparseDataHyperRectangleN = typename Private_DataHyperRectangle_::template NTemplate< T, SparseDataHyperRectangle >::template Helper_< make_index_sequence< N > >::CombinedType |
Enumerations | |
enum class | AddReplaceMode { eAddIfMissing , eAddReplaces } |
Mode flag to say if Adding to a container replaces, or if the first addition wins. More... | |
enum class | AddOrExtendOrReplaceMode { eAddIfMissing = static_cast<int> (AddReplaceMode::eAddIfMissing) , eAddReplaces = static_cast<int> (AddReplaceMode::eAddReplaces) , eAddExtras , eDuplicatesRejected } |
Mode flag to say if Adding to a container replaces, or if the first addition wins (Logically AddOrExtendOrReplaceMode subclasses AddReplaceMode) More... | |
Functions | |
template<typename T > | |
Collection< T > | operator+ (const Iterable< T > &lhs, const Collection< T > &rhs) |
template<typename CONTAINER > | |
CONTAINER::value_type * | Start (CONTAINER &c) |
For a contiguous container (such as a vector or basic_string) - find the pointer to the start of the container. | |
template<typename CONTAINER > | |
CONTAINER::value_type * | End (CONTAINER &c) |
For a contiguous container (such as a vector or basic_string) - find the pointer to the end of the container. | |
template<typename T > | |
Sequence< T > | operator+ (const Iterable< T > &lhs, const Sequence< T > &rhs) |
template<typename T > | |
Set< T > | operator+ (const Set< T > &lhs, const Iterable< T > &rhs) |
template<typename T > | |
Set< T > | operator- (const Set< T > &lhs, const Iterable< T > &rhs) |
template<typename T > | |
Set< T > | operator^ (const Set< T > &lhs, const Iterable< T > &rhs) |
TODO:
Or add Bag<> class that does basically this.
STATUS: NOT EVEN DRAFT IMPL READY YET TO TEST.
TODO:
@todo Use TRAITS mechanism - like with Bag<> @todo Implement first draft of code based on http://github.com/SophistSolutions/Stroika/blob/master/Archive/Stroika_FINAL_for_STERL_1992/Library/Foundation/Headers/PriorityQueue.hh @todo FIX so can remove top prioty itme to return btoih at a time. @todo Add Traits, and part of triats is priority type. min/max comes from numeric_limits<T>::min/max, and memmbers of the traits - not global @todo Rename PQEntry to PriorityQueueEntry (document why not nested type, and why not using pair<> - and then put docs into MultiSet code, and then redo Mapping to use KeyValuePair<> instead of pair<> - and have .fKey first elt! @todo redo operator== (const PQEntry<T>& lhs, const PQEntry<T>& rhs); as member function
TODO:
TODO:
using Stroika::Foundation::Containers::DataHyperRectangleN = typedef typename Private_DataHyperRectangle_::template NTemplate<T, DataHyperRectangle>::template Helper_<make_index_sequence<N> >::CombinedType |
using DataHyperRectangleN = DataHyperRectangle<T, size_t N REPEATED TIMES>
Definition at line 207 of file DataHyperRectangle.h.
using Stroika::Foundation::Containers::DenseDataHyperRectangleN = typedef typename Private_DataHyperRectangle_::template NTemplate<T, DenseDataHyperRectangle>::template Helper_<make_index_sequence<N> >::CombinedType |
using DenseDataHyperRectangleN = DenseDataHyperRectangle<T, size_t REPEATED N TIMES>
Definition at line 63 of file DenseDataHyperRectangle.h.
using Stroika::Foundation::Containers::SparseDataHyperRectangleN = typedef typename Private_DataHyperRectangle_::template NTemplate<T, SparseDataHyperRectangle>::template Helper_<make_index_sequence<N> >::CombinedType |
using SparseDataHyperRectangleN = SparseDataHyperRectangle<T, size_t REPEATED N TIMES>
Definition at line 67 of file SparseDataHyperRectangle.h.
|
strong |
Mode flag to say if Adding to a container replaces, or if the first addition wins.
Enumerator | |
---|---|
eAddIfMissing | Associate argument value iff key argument missing |
eAddReplaces | Associate argument with value unconditionally |
Definition at line 45 of file Foundation/Containers/Common.h.
|
strong |
Mode flag to say if Adding to a container replaces, or if the first addition wins (Logically AddOrExtendOrReplaceMode subclasses AddReplaceMode)
Enumerator | |
---|---|
eAddIfMissing | same value as AddReplaceMode::eAddIfMissing |
eAddReplaces | same value as AddReplaceMode::eAddReplaces |
eAddExtras | Used in multisets (where key can be associated with multiple values) - just add extra values. |
eDuplicatesRejected | if key already present, throw runtime exception |
Definition at line 62 of file Foundation/Containers/Common.h.
Collection< T > Stroika::Foundation::Containers::operator+ | ( | const Iterable< T > & | lhs, |
const Collection< T > & | rhs | ||
) |
Basic operator overload with the obvious meaning (Collection<T> copy and Collection<T>::AddAll)
Definition at line 285 of file Containers/Collection.inl.
CONTAINER::value_type * Stroika::Foundation::Containers::Start | ( | CONTAINER & | c | ) |
For a contiguous container (such as a vector or basic_string) - find the pointer to the start of the container.
For a contiguous container (such as a vector or basic_string) - find the pointer to the start of the container
Note: this is like std::begin(), except that it returns a pointer, not an iterator, and returns nullptr if the container is empty.
Definition at line 23 of file Foundation/Containers/Common.inl.
CONTAINER::value_type * Stroika::Foundation::Containers::End | ( | CONTAINER & | c | ) |
For a contiguous container (such as a vector or basic_string) - find the pointer to the end of the container.
For a contiguous container (such as a vector or basic_string) - find the pointer to the end of the container
Note: this is like std::end(), except that it returns a pointer, not an iterator, and returns nullptr if the container is empty.
Definition at line 41 of file Foundation/Containers/Common.inl.
Sequence< T > Stroika::Foundation::Containers::operator+ | ( | const Iterable< T > & | lhs, |
const Sequence< T > & | rhs | ||
) |
Basic operator overload with the obvious meaning (Sequence<T> copy and Sequence<T>::AppendAll)
Definition at line 517 of file Sequence.inl.