Une liste de valeurs acceptables pour des entiers - C++ - Programmation
Marsh Posté le 23-01-2003 à 17:56:31
Comment ça on peut pas faire de enum avec des entiers !???
c bien enum que j'utiliserais ds ton cas :
|
Marsh Posté le 23-01-2003 à 22:31:03
si ton tableau d'entiers est trie tu peux faire
une recherche en temps logarithmique (cas le pire).
Tu peux aussi utiliser des set c'est pour ca qu'ils existent:
tu crees un set d'entier et tu peux verifier la presence
de l'entier en question en temps logarithmique (ca t'evite de creer la fonction de recherche a la main meme si c'est assez rapide a faire)
Code :
|
les enums ne reglent qu'a moitie ton probleme
parce que l'utilisateur va pouvoir faire un
cast (explicite) d'un entier vers le type enum.
Cela sert si tes entiers representent une valeur
symbolique et qu'une autre valeur n'a aucun sens.
par exemple :
Code :
|
Cela permet d'encoder des constantes sans utiliser
de define egalement.
A+
LeGreg
Marsh Posté le 23-01-2003 à 22:43:44
si ton constructeur prends comme paramètre un int, le problème de l'enum, c'est effectivement le parcours un peu la batarde... donc le mieux c'est un joli tableau C static et const en de préférence trié pour une recherche plus rapide.
mais effectivement, si tu utilise une enum comme paramètre, plus de problème, c'est tout ce qu'il y a de plus courant
Marsh Posté le 23-01-2003 à 17:25:16
Dans le construceteur d'un objet, je récupère
une valeur entière.
Il faut que cette valeur fasse partie d'une liste de valeurs qui sont acceptables.
Comment puis-je faire ?
Je pensais à qqchose du genre :
enum valeurs_ok { 2, 8, 9, 10 };
Puis........puis je ne sais pas. De toute façon
on ne peut pas faire de "enum" avec des entiers.
Une façon de faire serait de créer un tableau d'entiers,
mais cela m'obligerait à parcourir tout le tableau pour vérifier
si le nombre est bon.
Est-ce la seule solution ?
---------------
Il n'est pas nécéssaire de réussir pour persévérer.