|
begin process at 2008 07 19 09:16:42
Derniers logiciels
|
Trouver une ressource (Nouvelle version du moteur, plus rapide & pertinent, essayez le !)
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 de la même categorie
Commentaires
Discussions en rapport avec ce code source
|
Téléchargements
Logiciels à télécharger sur le même thème :
|
|