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 | |
OneToOne () noexcept | |
Default constructor. | |
void | insert (const Pair &pair) noexcept |
Insert a pair into the set. The rule for one-to-one is that if the rleft value or the ight value are part of an existing pairs in the set, those relations will be erased. | |
void | insert (const LeftType &left, const RightType &right) noexcept |
Insert a pair into the set. The rule for one-to-one is that if the left value or the right value are part of existing pairs in the set, those relations will be erased. | |
void | insert (const std::vector< Pair > &pairs) noexcept |
Insert multiple pairs into the set. The rule for one-to-one is that if the left value or the right value are part of existing pairs in the set, those relations will be erased. | |
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 equivalent to 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 noexcept |
Test whether any pair in the set has this right value. | |
RightType | findRight (const LeftType &left, const RightType ¬FoundValue) const noexcept |
Find the single right value that is paired with this left value. If nothing is found, you will get the notFoundValue. | |
LeftType | findLeft (const RightType &right, const LeftType ¬FoundValue) const noexcept |
Find the single left value that is paired with this right value. If nothing is found, you will get the notFoundValue. | |
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, RightType > | allLeft () const noexcept |
List all left elements. | |
UnorderedMapHelper< RightType, 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 one-to-one set of (left, right) pairs. Any left or right value can only be paired with one counterpart.
Definition at line 1270 of file BinaryRelations.h.
|
inlinenoexcept |
Default constructor.
Definition at line 1293 of file BinaryRelations.h.
|
inlinenoexcept |
List all left elements.
Definition at line 1517 of file BinaryRelations.h.
|
inlinenoexcept |
List all right elements.
Definition at line 1526 of file BinaryRelations.h.
|
inlinenoexcept |
Required member to get range-based-for.
Definition at line 1565 of file BinaryRelations.h.
|
inlinenoexcept |
Erase all pairs from the set.
Definition at line 1414 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 1434 of file BinaryRelations.h.
|
inlinenoexcept |
Test whether a given pair is in the set.
pair | The pair to look for. |
Definition at line 1424 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 1444 of file BinaryRelations.h.
|
inlinenoexcept |
Test whether any pair in the set has this right value.
right | The right side of the pair to look for. |
Definition at line 1454 of file BinaryRelations.h.
|
inlinenoexcept |
Count the number of pairs in the set.
Definition at line 1508 of file BinaryRelations.h.
|
inlinenoexcept |
Count the number of left values in the set.
Definition at line 1490 of file BinaryRelations.h.
|
inlinenoexcept |
Count the number of right values in the set.
Definition at line 1499 of file BinaryRelations.h.
|
inlinenoexcept |
Required member to get range-based-for.
Definition at line 1576 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 1352 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 1341 of file BinaryRelations.h.
|
inlinenoexcept |
Erase multiple pairs from the set. This is equivalent to erasing the pairs one by one.
pairs | The pairs to erase. |
Definition at line 1403 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 1369 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 1386 of file BinaryRelations.h.
|
inlinenoexcept |
Find the single left value that is paired with this right value. If nothing is found, you will get the notFoundValue.
right | The right side of the pair to look for. |
notFoundValue | The value to return if no matching pair is found. |
Definition at line 1480 of file BinaryRelations.h.
|
inlinenoexcept |
Find the single right value that is paired with this left value. If nothing is found, you will get the notFoundValue.
left | The left side of the pair to look for. |
notFoundValue | The value to return if no matching pair is found. |
Definition at line 1467 of file BinaryRelations.h.
|
inlinenoexcept |
Insert a pair into the set. The rule for one-to-one is that if the left value or the right value are part of existing pairs in the set, those relations will be erased.
left | The left side of the pair to add. |
right | The right side of the pair to add. |
Definition at line 1312 of file BinaryRelations.h.
|
inlinenoexcept |
Insert a pair into the set. The rule for one-to-one is that if the rleft value or the ight value are part of an existing pairs in the set, those relations will be erased.
pair | The pair to insert. |
Definition at line 1301 of file BinaryRelations.h.
|
inlinenoexcept |
Insert multiple pairs into the set. The rule for one-to-one is that if the left value or the right value are part of existing pairs in the set, those relations will be erased.
pairs | The pairs to add. |
Definition at line 1328 of file BinaryRelations.h.