|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
NLIST ( TEMPLATE )
Information sur la source
Description
Une simple petite class template. Je n'avait jamais codé de template en C++ et maintenant j'en ai fait un alors le voilà! C'est très simple, il y à des commentaires partout ;) Je vous laisse avec le source && @++;
Source
- Voilà le contenue du fichier main.cpp(l'exemple d'utilisation)
-
-
- #include <iostream.h>
- #include <string.h>
- #include <windows.h>
- #include "nlist.h"
-
- int main()
- {
-
- // Pour calculer le temp d'exécution ...
- DWORD dwStart = 0;
- DWORD dwEnd = 0;
-
- // utilisé pour lister les éléments de la liste
- int i = 0;
- // instancie notre class, dans l'exemple, j'utilise des char*
- // et limite la taille de la liste à 4 éléments
- // plist est maintenant notre nouvelle instance(copie) de NList
- // Une liste de char* limité à 4 éléments maximum
- //
- // Démarre le calcule du temp d'exécution à partir de l'instanciation
- dwStart = GetTickCount();
- NList<char*, 4> plist;
-
- // ajoute des éléments dans la liste
- plist.AddItem("NitRic\0");
- plist.AddItem("WebSoftDev\0");
- plist.AddItem("Web Software Development Inc.\0");
- plist.AddItem("All Rights Reserved © 2003 WebSoftDev Inc.\0");
-
- cout << "Listing des elements:\n";
- // liste tous les éléments de la liste
- for ( i = plist.begin(); i <= plist.end(); i++ ) {
- cout << i << " - " << (char*)plist.GetItem(i) << "\n";
- }
- /* c'est une autre facon de lister ;)
- cout << (char*)plist.GetItem(0) << "\n";
- cout << (char*)plist.GetItem(1) << "\n";
- cout << (char*)plist.GetItem(2) << "\n";
- cout << (char*)plist.GetItem(3) << "\n";
- */
- // Notre liste, c'est une liste de char*, donc pour connaître la longueur d'un élément
- // on utilise strlen() pour des chaines
- cout << "\nLongueur de l'element 0: " << strlen(plist.GetItem(0)) << " caractere(s)\n";
- // affiche le nombre d'élément dans la liste
- cout << "Nombre d'elements dans la liste: " << plist.end() << "\n";
- // trouve l'index d'un élément X
- cout << "L'index de l'element 'WebSoftDev' est: " << plist.GetIndex("WebSoftDev\0") << "\n";
- cout << "Nombre d'element apres suppression de l'element 1: ";
- // supprime un élément de la liste
- plist.RemoveItem(1);
- // affiche le nombre d'éléments de la liste
- cout << plist.end() << "\n";
- // affiche le contenue de l'élément 1
- cout << "L'element 1 est maintenant: " << plist.GetItem(1) << "\n";
- cout << "Ajout d'un item a l'emplacement 1\n";
- // ajout un élément à la position 1 dans la liste
- plist.AddItem("New Item\0", 1);
- cout << "\nListing des elements:\n";
- // refait un listing des éléments de la liste
- plist.MoveTo(0); // Ou, plist.MoveFirst();
- do {
- cout << plist.GetIndex() << " - " << (char*)plist.GetItem() << "\n";
- } while ( plist.MoveNext() != -1 );
- /*
- for ( i = plist.begin(); i <= plist.end(); i++ ) {
- cout << i << " - " << (char*)plist.GetItem(i) << "\n";
- }
- */
- /* même chose que plus haut ...
- cout << (char*)plist.GetItem(0) << "\n";
- cout << (char*)plist.GetItem(1) << "\n";
- cout << (char*)plist.GetItem(2) << "\n";
- cout << (char*)plist.GetItem(3) << "\n";
- */
- // comparer 2 éléments ...
- cout << "\nL'element 1 est identique a l'element 2?: " << plist.compare(plist.GetItem(0), plist.GetItem(1)) << "\n";
- cout << "L'element 1 est identique a l'element 1?: " << plist.compare(plist.GetItem(1), plist.GetItem(1)) << "\n";
- cout << "\n";
- // vide la liste, c'est optionnel, si vous ne la vider pas, elle ce videra elle même ...
- //cout << plist.MoveFirst() << "\n"; // pour des testes seulement mais fonctionnel
- //cout << plist.MoveLast() << "\n"; // pour des testes seulement mais fonctionnel
- plist.Empty();
-
- dwEnd = GetTickCount();
- // Affiche le temp d'exécution total à l'écran
- cout << "Temp d'execution total: " << (dwEnd-dwStart) << " milli sec\n\n";
-
- // le programme c'est bien terminé alors on renvoie 0
- return EXIT_SUCCESS;
-
- }
-
- Note: Le fichier "nlist.h" ne contient absolument aucun .h, il n'y à aucun include ...
-
- Sur mon PC(AMD K7 550 mhz avec 256 de ram et plus de 350 mo d'utilisé ;)) le temp d'exécution est de 0.00 milli sec ...
-
Voilà le contenue du fichier main.cpp(l'exemple d'utilisation)
#include <iostream.h>
#include <string.h>
#include <windows.h>
#include "nlist.h"
int main()
{
// Pour calculer le temp d'exécution ...
DWORD dwStart = 0;
DWORD dwEnd = 0;
// utilisé pour lister les éléments de la liste
int i = 0;
// instancie notre class, dans l'exemple, j'utilise des char*
// et limite la taille de la liste à 4 éléments
// plist est maintenant notre nouvelle instance(copie) de NList
// Une liste de char* limité à 4 éléments maximum
//
// Démarre le calcule du temp d'exécution à partir de l'instanciation
dwStart = GetTickCount();
NList<char*, 4> plist;
// ajoute des éléments dans la liste
plist.AddItem("NitRic\0");
plist.AddItem("WebSoftDev\0");
plist.AddItem("Web Software Development Inc.\0");
plist.AddItem("All Rights Reserved © 2003 WebSoftDev Inc.\0");
cout << "Listing des elements:\n";
// liste tous les éléments de la liste
for ( i = plist.begin(); i <= plist.end(); i++ ) {
cout << i << " - " << (char*)plist.GetItem(i) << "\n";
}
/* c'est une autre facon de lister ;)
cout << (char*)plist.GetItem(0) << "\n";
cout << (char*)plist.GetItem(1) << "\n";
cout << (char*)plist.GetItem(2) << "\n";
cout << (char*)plist.GetItem(3) << "\n";
*/
// Notre liste, c'est une liste de char*, donc pour connaître la longueur d'un élément
// on utilise strlen() pour des chaines
cout << "\nLongueur de l'element 0: " << strlen(plist.GetItem(0)) << " caractere(s)\n";
// affiche le nombre d'élément dans la liste
cout << "Nombre d'elements dans la liste: " << plist.end() << "\n";
// trouve l'index d'un élément X
cout << "L'index de l'element 'WebSoftDev' est: " << plist.GetIndex("WebSoftDev\0") << "\n";
cout << "Nombre d'element apres suppression de l'element 1: ";
// supprime un élément de la liste
plist.RemoveItem(1);
// affiche le nombre d'éléments de la liste
cout << plist.end() << "\n";
// affiche le contenue de l'élément 1
cout << "L'element 1 est maintenant: " << plist.GetItem(1) << "\n";
cout << "Ajout d'un item a l'emplacement 1\n";
// ajout un élément à la position 1 dans la liste
plist.AddItem("New Item\0", 1);
cout << "\nListing des elements:\n";
// refait un listing des éléments de la liste
plist.MoveTo(0); // Ou, plist.MoveFirst();
do {
cout << plist.GetIndex() << " - " << (char*)plist.GetItem() << "\n";
} while ( plist.MoveNext() != -1 );
/*
for ( i = plist.begin(); i <= plist.end(); i++ ) {
cout << i << " - " << (char*)plist.GetItem(i) << "\n";
}
*/
/* même chose que plus haut ...
cout << (char*)plist.GetItem(0) << "\n";
cout << (char*)plist.GetItem(1) << "\n";
cout << (char*)plist.GetItem(2) << "\n";
cout << (char*)plist.GetItem(3) << "\n";
*/
// comparer 2 éléments ...
cout << "\nL'element 1 est identique a l'element 2?: " << plist.compare(plist.GetItem(0), plist.GetItem(1)) << "\n";
cout << "L'element 1 est identique a l'element 1?: " << plist.compare(plist.GetItem(1), plist.GetItem(1)) << "\n";
cout << "\n";
// vide la liste, c'est optionnel, si vous ne la vider pas, elle ce videra elle même ...
//cout << plist.MoveFirst() << "\n"; // pour des testes seulement mais fonctionnel
//cout << plist.MoveLast() << "\n"; // pour des testes seulement mais fonctionnel
plist.Empty();
dwEnd = GetTickCount();
// Affiche le temp d'exécution total à l'écran
cout << "Temp d'execution total: " << (dwEnd-dwStart) << " milli sec\n\n";
// le programme c'est bien terminé alors on renvoie 0
return EXIT_SUCCESS;
}
Note: Le fichier "nlist.h" ne contient absolument aucun .h, il n'y à aucun include ...
Sur mon PC(AMD K7 550 mhz avec 256 de ram et plus de 350 mo d'utilisé ;)) le temp d'exécution est de 0.00 milli sec ...
Conclusion
Développé et testé sous VC++ 6 et Windows 2000 Pro seulement mais 'devrait' bien fonctionner avec les autres compilateurs C++ Win32 et
'je croit' qu'il pourrait fonctionner sous Linux aussi mais il faudrait enlever le
calcule du temp d'exécution ou le remplacer(windows.h, GetTickCount(), ...)
Sur ce, beubye && @++;
Historique
- 18 mai 2007 01:56:45 :
- ajout des mots clés( Vous aussi, mettez vos sources à jour !!! Ajoutez les mots clés !!! )
Sources du même auteur
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Liste chainée en C++ sans STL (ni vector ni template) [ par Tamahome ]
Bonjour,je cherche un exemple de liste chainée (sans STL: ni vector ni template) enC++ (pas en C) permettant de chainer des objets héterogenes (par ex
template- au secours [ par toddy_101 ]
bonjour tout le monde, j'ai un probleme au niveau des templates, ca bloke au niveau du linkage!! voici la declaration de la classe , et des methodes:
classe template [ par mimosa803 ]
bonsoir à tous , bon j'ai fait une fait une classe file générique (avec une classe noeud générique).Je veux tester cette classe en faisant file<com
liste chainée et pointeur générique ? [ par tintin72 ]
Bonjour, J'essaie de coder une liste chainée dont la valeur à stockée est matérialisé par un pointeur sur void de façon rendre mon code générique:
classe avec liste simple [ par Olive512005 ]
Bonjour ,je voudrais avant tout remercier pour les réponses que j'ai eu à propos du tableau. voila j'ai un petit problème à résoudre encore, il faud
liste simple [ par Crib ]
BonjourEst il possible d'avoir un moyen d'inserer à la fin d'une liste simple Nig-K
Liste chainée Template maillon externe [ par Timidouveg ]
Bonjour :)Je n'ai pas compris comment fonctionne les template. J'ai cherché des explications sur internet, mais j'avoue que ça m'échappe un peu :sJe s
Liste comportant une classe template [ par horcks ]
Bonjour, J'aurais voulu savoir s'il est possible de créer une liste contenant une classe template. Je m'explique : Voici le code (écourté) du template
svp j'ai besoin de votre aide pour trouver la transformation de cette gammaire pour pouvoir efffectuer une analyse syntaxique par descente prédictive [ par saimouma ]
p <span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-ascii-font-family: Calibri; mso-
Probleme d'ajout de chaine de caractere dnas une liste box [ par Zock ]
Bonjour a tous ceux qui liront ce post,Alors voila j'ai un petit soucis avec une de mes applications, il me semble que c'est du .NetEx :checkedListBox
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|