Liste d'éléments (comme des String) en VC++.Net (2003)

doudounico Messages postés 27 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 4 juin 2006 - 29 déc. 2005 à 11:13
ctx_man Messages postés 285 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 20 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

4 réponses

DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Derniè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.

Shell
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
29 déc. 2005 à 11:26
Pour faire plus simple, tu peux aussi gérer un tableau unidimensionnel de string

Exemple:
string[1024];


Cependant, les types primitifs restent toujours les plus souples et plus puissants.

Shell
0
doudounico Messages postés 27 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 4 juin 2006
29 déc. 2005 à 11:39
Non, je voudrais utiliser les classes managées plus simples comme ArrayList, je me demandais s'il existait un moyen de préciser le type des éléments.
0
ctx_man Messages postés 285 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 20 janvier 2013 3
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é !!!
0
Rejoignez-nous