41 template <
typename GUM_SCALAR_VAL,
typename GUM_SCALAR_SEQ >
50 template <
typename GUM_SCALAR_VAL,
typename GUM_SCALAR_SEQ >
52 const GUM_SCALAR_VAL& val,
const GUM_SCALAR_SEQ& elem) {
62 template <
typename GUM_SCALAR_VAL,
typename GUM_SCALAR_SEQ >
67 this->operator+=(src);
71 template <
typename GUM_SCALAR_VAL,
typename GUM_SCALAR_SEQ >
75 this->__argMaxSeq->clear();
76 this->operator+=(src);
84 template <
typename GUM_SCALAR_VAL,
typename GUM_SCALAR_SEQ >
97 template <
typename GUM_SCALAR_VAL,
typename GUM_SCALAR_SEQ >
101 __argMaxSeq->insert(elem);
108 template <
typename GUM_SCALAR_VAL,
typename GUM_SCALAR_SEQ >
113 if (!__argMaxSeq->exists(*iter)) __argMaxSeq->insert(*iter);
120 template <
typename GUM_SCALAR_VAL,
typename GUM_SCALAR_SEQ >
123 if (__val != compared.
value())
return false;
125 if (!__argMaxSeq->exists(*iter))
return false;
126 for (
auto iter = this->beginSafe(); iter != this->endSafe(); ++iter)
127 if (!compared.
exists(*iter))
return false;
SequenceIteratorSafe< GUM_SCALAR_SEQ > endSafe() const
Iterator end.
bool operator==(const ArgMaxSet< GUM_SCALAR_VAL, GUM_SCALAR_SEQ > &compared) const
Compares two ArgMaxSet to check if they are equals.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Class to handle efficiently argMaxSet.
SequenceIteratorSafe< GUM_SCALAR_SEQ > beginSafe() const
Iterator beginning.
const GUM_SCALAR_VAL & value() const
Returns the value on which comparison are made.
bool exists(const GUM_SCALAR_SEQ &elem) const
ArgMaxSet< GUM_SCALAR_VAL, GUM_SCALAR_SEQ > & operator+=(const GUM_SCALAR_SEQ &elem)
Ajout d'un élément.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
ArgMaxSet< GUM_SCALAR_VAL, GUM_SCALAR_SEQ > & operator=(const ArgMaxSet< GUM_SCALAR_VAL, GUM_SCALAR_SEQ > &src)
Constructor.
void insert(const Key &k)
Insert an element at the end of the sequence.