Liste d'éléments (comme des String) en VC++.Net (2003)
doudounico
Messages postés27Date d'inscriptionsamedi 12 juin 2004StatutMembreDernière intervention 4 juin 2006
-
29 déc. 2005 à 11:13
ctx_man
Messages postés285Date d'inscriptionmardi 28 décembre 2004StatutMembreDernière intervention20 janvier 2013
-
29 déc. 2005 à 11:53
Bonjour,
Je souhaiterais créer une liste de String (tableau de taille variable).
Je pourrais utiliser une ArrayList mais j'obtiens un problème de cast (il faut changer le type des objets à chaque appel).
Comment pourrais-je faire ? Hériter de ArrayList ?
Débutant en prog, merci de donner si possible un bout de Code du type :
class StringList : public ArrayList
{
...
}
PS : Je voudrais aussi l'utiliser de manière plus générale avec mes propres classes (ex class Element -> class ElementList)
Merci encore de votre aide et bonnes fêtes à tous
A voir également:
Liste d'éléments (comme des String) en VC++.Net (2003)
DeAtHCrAsH
Messages postés2670Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention 6 février 2013 29 déc. 2005 à 11:21
Crées toi un tableau a deux dimensions.
Exemple:
char *[1024];
Tu y ajoutes et y soustrait tes éléments au fur et a mesure.
Le mieux est de se faire une class qui gere ca a la maniere des liste simplement chaînées.
ctx_man
Messages postés285Date d'inscriptionmardi 28 décembre 2004StatutMembreDernière intervention20 janvier 20133 29 déc. 2005 à 11:53
Dans la globalitee, quand tu veut creer une liste d'éléments persos, tu utilise un liste chainée ou double chainée. Pour le cas ou tu ne sais pas ce que c'est je te fait un petit exemple en speed :
class CList
{
CList *Next;
CList *Prev; //Si la liste est double chainée
long ID; //Facultatif, mais util pour des recherche rapides
Element Elt;
public:
////////////
//Methodes//
////////////
};
Le but c'est d'allouer un premier élément lors du construteur, ensuite via une methode d'ajout tu ajoute tes éléments dynamiquement.pour l'allocation de 3 élément voici ce que tu doit obtenir :
A B CNext &B Next &C Next = NULLPrev NULL Prev &A Prev = &B <-Pour liste double chainee
Il est possible aussi (mais judicieux ?) de boucler ta chaine (A.Prev &C, C.Next &A)
Pour les methodes il faut bien evidemment allouer les nouveau elements, penser a tous les detruire lors du destructeur. Des fonction pour obtenir/modifier l'element possédant un ID particulier peuvent être très pratique pour ne pas dire indispensable. Enfin, il est judicieux de surcharger l'operateur [] pour utiliser ta liste comme un tableau ce qui est très pratique.
Le travail c'est la santé, ne rien faire c'est la préservé !!!