Binary Relations
Three new associative container classes
|
#include <BinaryRelations.h>
Classes | |
class | Iterator |
A range-based-for compatible iterator. More... | |
struct | Pair |
A pair of (left, right) values. More... | |
Public Member Functions | |
ManyToMany () noexcept | |
Default constructor. | |
void | insert (const Pair &pair) noexcept |
Insert a pair into the set. | |
void | insert (const LeftType &left, const RightType &right) noexcept |
Insert a pair into the set. | |
void | insert (const std::vector< Pair > &pairs) noexcept |
Insert multiple pairs into the set. This is faster than inserting the pairs one by one. | |
void | erase (const Pair &pair) noexcept |
Erase a pair from the set. If there is no matching pair in the set, nothing happens. | |
void | erase (const LeftType &left, const RightType &right) noexcept |
Erase a pair from the set. If there is no matching pair in the set, nothing happens. | |
void | eraseLeft (const LeftType &left) noexcept |
Erase all pairs with the given left value. If there is no matching pair in the set, nothing happens. | |
void | eraseRight (const RightType &right) noexcept |
Erase the pair with the given right value. If there is no matching pair in the set, nothing happens. | |
void | erase (const std::vector< Pair > &pairs) noexcept |
Erase multiple pairs from the set. This is faster than erasing the pairs one by one. | |
void | clear () noexcept |
Erase all pairs from the set. | |
bool | contains (const Pair &pair) const noexcept |
Test whether a given pair is in the set. | |
bool | contains (const LeftType &left, const RightType &right) const noexcept |
Test whether a given pair is in the set. | |
bool | containsLeft (const LeftType &left) const noexcept |
Test whether any pair in the set has this left value. | |
bool | containsRight (const RightType &right) const |
Test whether any pair in the set has this right value. | |
const std::vector< RightType > * | findRight (const LeftType &left) const noexcept |
Find all right values that are paired with this left value. If nothing is found, you will get an empty array. This works well with range-based-for. | |
const std::vector< LeftType > * | findLeft (const RightType &right) const noexcept |
Find all left values that are paired with this right value. If nothing is found, you will get an empty array. This works well with range-based-for. | |
int | countLeft () const noexcept |
Count the number of left values in the set. | |
int | countRight () const noexcept |
Count the number of right values in the set. | |
int | count () const noexcept |
Count the number of pairs in the set. | |
UnorderedMapHelper< LeftType, std::vector< RightType > * > | allLeft () const noexcept |
List all left elements. | |
UnorderedMapHelper< RightType, std::vector< LeftType > * > | allRight () const noexcept |
List all right elements. | |
Iterator | begin () const noexcept |
Required member to get range-based-for. | |
Iterator | end () const noexcept |
Required member to get range-based-for. | |
A many-to-many set of (left, right) pairs.
Definition at line 705 of file BinaryRelations.h.
|
inlinenoexcept |
Default constructor.
Definition at line 732 of file BinaryRelations.h.
|
inlinenoexcept |
List all left elements.
Definition at line 1177 of file BinaryRelations.h.
|
inlinenoexcept |
List all right elements.
Definition at line 1186 of file BinaryRelations.h.
|
inlinenoexcept |
Required member to get range-based-for.
Definition at line 1239 of file BinaryRelations.h.
|
inlinenoexcept |
Erase all pairs from the set.
Definition at line 1053 of file BinaryRelations.h.
|
inlinenoexcept |
Test whether a given pair is in the set.
left | The left side of the pair to look for. |
right | The right side of the pair to look for. |
Definition at line 1073 of file BinaryRelations.h.
|
inlinenoexcept |
Test whether a given pair is in the set.
pair | The pair to look for. |
Definition at line 1063 of file BinaryRelations.h.
|
inlinenoexcept |
Test whether any pair in the set has this left value.
left | The left side of the pair to look for. |
Definition at line 1100 of file BinaryRelations.h.
|
inline |
Test whether any pair in the set has this right value.
right | The right side of the pair to look for. |
Definition at line 1109 of file BinaryRelations.h.
|
inlinenoexcept |
Count the number of pairs in the set.
Definition at line 1168 of file BinaryRelations.h.
|
inlinenoexcept |
Count the number of left values in the set.
Definition at line 1150 of file BinaryRelations.h.
|
inlinenoexcept |
Count the number of right values in the set.
Definition at line 1159 of file BinaryRelations.h.
|
inlinenoexcept |
Required member to get range-based-for.
Definition at line 1256 of file BinaryRelations.h.
|
inlinenoexcept |
Erase a pair from the set. If there is no matching pair in the set, nothing happens.
left | The left side of the pair to erase. |
right | The right side of the pair to erase. |
Definition at line 885 of file BinaryRelations.h.
|
inlinenoexcept |
Erase a pair from the set. If there is no matching pair in the set, nothing happens.
pair | The pair to erase. |
Definition at line 874 of file BinaryRelations.h.
|
inlinenoexcept |
Erase multiple pairs from the set. This is faster than erasing the pairs one by one.
pairs | The pairs to erase. |
Definition at line 977 of file BinaryRelations.h.
|
inlinenoexcept |
Erase all pairs with the given left value. If there is no matching pair in the set, nothing happens.
left | The left side of the pairs to erase. |
Definition at line 921 of file BinaryRelations.h.
|
inlinenoexcept |
Erase the pair with the given right value. If there is no matching pair in the set, nothing happens.
right | The right side of the pairs to erase. |
Definition at line 949 of file BinaryRelations.h.
|
inlinenoexcept |
Find all left values that are paired with this right value. If nothing is found, you will get an empty array. This works well with range-based-for.
right | The right side of the pair to look for. |
Definition at line 1137 of file BinaryRelations.h.
|
inlinenoexcept |
Find all right values that are paired with this left value. If nothing is found, you will get an empty array. This works well with range-based-for.
left | The left side of the pair to look for. |
Definition at line 1121 of file BinaryRelations.h.
|
inlinenoexcept |
Insert a pair into the set.
left | The left side of the pair to add. |
right | The right side of the pair to add. |
Definition at line 750 of file BinaryRelations.h.
|
inlinenoexcept |
Insert a pair into the set.
pair | The pair to insert. |
Definition at line 740 of file BinaryRelations.h.
|
inlinenoexcept |
Insert multiple pairs into the set. This is faster than inserting the pairs one by one.
pairs | The pairs to add. |
Definition at line 783 of file BinaryRelations.h.