un exemple de classe pile generique qui permet d'enpiler/depiler des elements du type souhaité
en principe redefinir ce genre de conteneur c'est surtout pour optimiser, la classe tableau est 50% plus rapide que vector en acces, mais bien moins complete et pratique, on peux tj rajouter des trucs
27 avril 2004 à 17:58
27 avril 2004 à 19:50
toi aussi tu a vu que ca valais le coup de recoder ces classes de la stl
si ca t'interresse et que ta vc++, regarde les sources des carray des mfc, c assez bien foutu au niveau optimisation
d'accord pour les string, difficile de faire mieux de meme pour les allgorithme de la stl
28 avril 2004 à 11:50
il est conseillé de mettre tes destructeurs virtuels si tu veux permettre de dériver tes classes
__fastcall n'est pas standard
sinon, pour stack :
element devrait p-e être déclaré en privé dans stack ?
pour tableau :
inline Type& __fastcall operator [] (int ind)
{
return m_Ttab[ind];
}
>> pas de vérification de dépassement ???? c'est pourtant un des interêts majeurs d'une telle classe
et la version const ?
const Type & operator [] (int ind) const;
28 avril 2004 à 19:50
oui le __fastcall n'est pas standard mais la c'est pas le but, je vois mal comment allié code standard + perf
pour l'operateur [], en effet je verifie pas pour pas perdre de temps, par contre je le fait avec la methode ind, std::vector fait la meme avec la methode elementAt
pour la version const, je vais l'ajouter, merci
aussi j'ai foutu les definition dans des .cpp et c'est une erreurs, quoi qu'il en soit tu a raison, ca doit se trouver dans un fichier entete, mais pas forcement l'entete meme de la classe du moment qu'il est inclu
pour la forme je dirai qu'il est plus propre de faire genre
stack.h ==> declaration
stack.tpl ==> definition des methode, le fichier doit etre inclus (ala fin de stack.h par ex)
en fait comme on ferait la meme chose avec les fichier .inl pour mettre la definition des methodes inline
29 avril 2004 à 19:08
template < ... >
class x
{
void methode()
{
...
}
}
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.