Classe abstraite pour la représentation d'un ordre partiel de iSet. More...
#include "cogitant/partialorder.h"
Public Types | |
enum | Comparison { EQUAL, LESS, GREATER, UNCOMPARABLE } |
Résultat de la comparaison de deux éléments d'un PartialOrder. More... | |
Public Member Functions | |
Constructeurs - destructeur. | |
PartialOrder () | |
Constructeur d'un ordre partiel. More... | |
PartialOrder (PartialOrder const &c) | |
Constructeur par recopie. More... | |
virtual | ~PartialOrder () |
Destructeur. More... | |
Modifications. | |
virtual void | reserve (nSet s)=0 |
Réservation d'espace dans l'ensemble. More... | |
virtual void | setSize (nSet n)=0 |
Fixer le nombre d'éléments. More... | |
virtual void | clear ()=0 |
Vide l'ensemble. More... | |
virtual void | setImmediateLess (iSet i1, iSet i2)=0 |
Ajout d'un couple à l'ordre partiel. More... | |
virtual void | setImmediateLess (iSet i, std::vector< iSet > const &ie)=0 |
Sélection des éléments immédiatement inférieurs. More... | |
virtual void | unsetImmediateLess (iSet i1, iSet i2)=0 |
Retrait de l'information i1 > i2. More... | |
virtual void | optimize ()=0 |
Optimiser. More... | |
virtual void | unoptimize ()=0 |
Supprimer les structures optimisées. More... | |
Accesseurs divers. | |
virtual nSet | maxSize () const =0 |
Taille maximale de l'ensemble. More... | |
virtual nSet | size () const =0 |
Taille actuelle de l'ensemble. More... | |
virtual bool | optimized () const =0 |
Optimisation des structures de données. More... | |
virtual iSet | iBegin () const |
Itérateur de début. More... | |
virtual iSet | iEnd () const |
Itérateur de fin. More... | |
virtual void | iNext (iSet &i) const |
Incrémente l'itérateur passé pour le parcours de l'ensemble. More... | |
Accesseurs à l'ordre. | |
virtual bool | isLessOrEqualThan (iSet i1, iSet i2) const =0 |
Comparaison : <=. More... | |
virtual bool | isGreaterOrEqualThan (iSet i1, iSet i2) const |
Comparaison : >=. More... | |
virtual bool | isLessThan (iSet i1, iSet i2) const |
Comparaison : <. More... | |
virtual bool | isGreaterThan (iSet i1, iSet i2) const |
Comparaison : > More... | |
virtual Comparison | comparison (iSet i1, iSet i2) const |
Comparaison. More... | |
virtual void | getImmediateLessElements (iSet i, std::vector< iSet > &result) const |
Accès aux éléments immédiatement inférieurs. More... | |
virtual bool | isImmediateLess (iSet i1, iSet i2) const =0 |
Éléments immédiatement inférieurs. More... | |
virtual void | getImmediateGreaterElements (iSet i, std::vector< iSet > &result) const |
Accès aux éléments immédiatement supérieurs. More... | |
virtual bool | isImmediateGreater (iSet i1, iSet i2) const |
Éléments immédiatement supérieurs. More... | |
Accesseurs raccourcis. | |
bool | isLessOrEqualThanSets (std::vector< iSet > const &i1, std::vector< iSet > const &i2) const |
Comparaison : <=. More... | |
bool | isGreaterOrEqualThanSets (std::vector< iSet > const &i1, std::vector< iSet > const &i2) const |
Comparaison : >=. More... | |
virtual void | getGreaterOrEqualElements (iSet i, std::vector< iSet > &result) const |
Accès à tous les éléments supérieurs. More... | |
virtual void | getLessOrEqualElements (iSet i, std::vector< iSet > &result) const |
Accès à tous les éléments inférieurs. More... | |
Protected Member Functions | |
virtual bool | isValidIterator (iSet i1) const |
Vérification de la validité d'un identificateur. More... | |
Friends | |
Opérateurs. | |
std::ostream & | operator<< (std::ostream &out, PartialOrder const &c) |
Classe abstraite pour la représentation d'un ordre partiel de iSet.
Résultat de la comparaison de deux éléments d'un PartialOrder.
cogitant::PartialOrder::PartialOrder | ( | ) |
Constructeur d'un ordre partiel.
cogitant::PartialOrder::PartialOrder | ( | PartialOrder const & | c | ) |
Constructeur par recopie.
c | objet à copier. |
|
virtual |
Destructeur.
|
pure virtual |
Vide l'ensemble.
Implemented in cogitantcs::PartialOrderClient, cogitant::PartialOrder_Simple, and cogitant::PartialOrder_SimpleMemo.
|
virtual |
Comparaison.
|
virtual |
Accès à tous les éléments supérieurs.
|
virtual |
Accès aux éléments immédiatement supérieurs.
i | un itérateur valide de l'ensemble. |
result | (sortie) l'ensemble des itérateurs correspondant aux éléments immédiatement supérieurs à c. |
|
virtual |
Accès aux éléments immédiatement inférieurs.
i | un itérateur valide de l'ensemble. |
result | (sortie) l'ensemble des itérateurs correspondant aux éléments immédiatement inférieurs à c. |
Reimplemented in cogitant::PartialOrder_Simple.
|
virtual |
Accès à tous les éléments inférieurs.
|
virtual |
Itérateur de début.
|
virtual |
Itérateur de fin.
|
virtual |
Incrémente l'itérateur passé pour le parcours de l'ensemble.
i | itérateur sur l'ensemble. Après appel à cette méthode, l'itérateur repère l'élément suivant. |
Comparaison : >=.
true
ssi i1 >= i2. bool cogitant::PartialOrder::isGreaterOrEqualThanSets | ( | std::vector< iSet > const & | i1, |
std::vector< iSet > const & | i2 | ||
) | const |
Comparaison : >=.
true
ssi pour tout élément j de i1 , il existe un élément k de i2 tel que j >= k. Comparaison : >
true
ssi i1 > i2. Éléments immédiatement supérieurs.
true
ssi i1 est immédiatement supérieur à i2. Éléments immédiatement inférieurs.
true
ssi i1 est immédiatement inférieur à i2. Implemented in cogitant::PartialOrder_Simple.
Comparaison : <=.
true
ssi i1 <= i2. Implemented in cogitant::PartialOrder_Simple, and cogitant::PartialOrder_SimpleMemo.
bool cogitant::PartialOrder::isLessOrEqualThanSets | ( | std::vector< iSet > const & | i1, |
std::vector< iSet > const & | i2 | ||
) | const |
Comparaison : <=.
true
ssi pour tout élément j de i1 , il existe un élément k de i2 tel que j <= k. Comparaison : <.
true
ssi i1 < i2.
|
protectedvirtual |
Vérification de la validité d'un identificateur.
i1 | identificateur à tester. |
true
ssi i1 est un identificateur de l'ensemble sur lequel l'ordre partiel est défini.
|
pure virtual |
Taille maximale de l'ensemble.
Implemented in cogitant::PartialOrder_Simple.
|
pure virtual |
Optimiser.
L'appel à cette méthode provoque un calcul des structures optimisées pour l'accès rapide à l'ordre partiel. Une fois optimisé, l'ordre partiel ne doit plus être modifié. Cette méthode doit être concrétisée dans les sous classes (éventuellement avec un code vide) et fournir une éventuelle optimisation.
Implemented in cogitantcs::PartialOrderClient, cogitant::PartialOrder_Simple, and cogitant::PartialOrder_SimpleMemo.
|
pure virtual |
Optimisation des structures de données.
Si les structures de données sont optimisées, plus aucune modification ne peut être effectuée.
true
ssi la structure de données est optimisée. Implemented in cogitant::PartialOrder_Simple.
|
pure virtual |
Réservation d'espace dans l'ensemble.
L'appel à cette méthode peut être utile dans le cas ou des appels à setImmediateLess() ou unsetImmediateLess() doivent être effectués avant que la taille définitive de l'ensemble ne soit connue. Dans ce cas, plusieurs appels à setSize() sont effectués avant d'atteindre la taille définitive et dans le cas où l'ensemble est représenté par un vector, il peut être très intéressant pour des raisons de performances de dimensionner le vector
au nombre maximum d'éléments pouvant être contenus dans l'ensemble. L'appel à cette méthode n'est donc pas obligatoire mais peut provoquer un gain de performances selon l'implémentation de la structure de données.
s | taille à réserver. |
ExceptionReadOnlyObject |
Implemented in cogitantcs::PartialOrderClient, and cogitant::PartialOrder_Simple.
Ajout d'un couple à l'ordre partiel.
Ajoute à l'ensemble représentant l'ordre partiel le couple (i1,i2) repérant i1 > i2.
ExceptionReadOnlyObject | |
ExceptionAlreadyPresent |
Implemented in cogitant::PartialOrder_Simple.
|
pure virtual |
Sélection des éléments immédiatement inférieurs.
i | élément de l'ensemble. |
ie | éléments immédiatement inférieurs à i. |
ExceptionReadOnlyObject |
Implemented in cogitant::PartialOrder_Simple.
|
pure virtual |
Fixer le nombre d'éléments.
n | nouvelle taille (l'ensemble sur lequel l'ordre partiel est défini devient alors [0 .. n-1]). |
ExceptionReadOnlyObject |
Implemented in cogitantcs::PartialOrderClient, and cogitant::PartialOrder_Simple.
|
pure virtual |
Taille actuelle de l'ensemble.
Implemented in cogitant::PartialOrder_Simple.
|
pure virtual |
Supprimer les structures optimisées.
Cette méthode peut être appelée après l'appel à optimize(). Après appel à unoptimize(), l'ordre partiel peut à nouveau être modifié. *.
Implemented in cogitant::PartialOrder_Simple, and cogitant::PartialOrder_SimpleMemo.
Retrait de l'information i1 > i2.
Retire à l'ensemble représentant l'ordre partiel le couple (i1,i2) repérant i1 > i2.
ExceptionReadOnlyObject | |
ExceptionAlreadyPresent |
Implemented in cogitant::PartialOrder_Simple.