begin process at 2012 02 12 08:33:13
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > NLIST ( TEMPLATE )

NLIST ( TEMPLATE )


 Information sur la source

Note :
6 / 10 - par 1 personne
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Classé sous :template, liste, simple, chaîné, générique Niveau :Initié Date de création :09/08/2003 Date de mise à jour :18/05/2007 01:56:45 Vu / téléchargé :4 067 / 79

Auteur : NitRic

Ecrire un message privé
Site perso
Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

 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 && @++;

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   nlist
    • Debug
    • Release
    • main.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier3 539 octets
    • nlist.dspTélécharger ce fichier [Réservé aux membres club]Voir ce fichier4 420 octets
    • nlist.dswTélécharger ce fichier [Réservé aux membres club]Voir ce fichier533 octets
    • nlist.hTélécharger ce fichier [Réservé aux membres club]Voir ce fichier12 551 octets
    • nlist.ncbTélécharger ce fichier [Réservé aux membres club]50 176 octets
    • nlist.optTélécharger ce fichier [Réservé aux membres club]48 640 octets
    • nlist.plgTélécharger ce fichier [Réservé aux membres club]1 214 octets

Télécharger le zip


 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

TRONQUER UN FICHIER(C - WINDOWS)
COMMENT CALCULER LE TEMP D'EXÉCUTION DE CERTAINES FONCTIONS ...
Source avec Zip VSTACK ( EFFET DE PILE ) / TEMPLATE
Source avec Zip NENGINE ( MOTEUR DE RECHERCHE POUR FICHIER ) (UPDATE)
Source avec Zip NSTRING (UPDATE) VERSION 1.5

 Sources de la même categorie

Source avec Zip ÉDITEUR DE RECTANGLES EN CONSOLE par seoseo
CONVERSION DE FICHIER EN FICHIER BMP par seoseo
Source avec Zip DETECTEUR EJP par idpro
Source avec Zip Source avec une capture SHOP MANAGER CONSOLE SUR WINDOWS par antho974
Source avec Zip JOUR DE NAISSANCE par fredg19

 Sources en rapport avec celle ci

LISTE CHAINÉE (TEMPLATE, NOEUD LOCAL OU GLOBAL, INSERTION OU... par darkpoulpo
Source avec Zip Source avec une capture LISTE CHAÎNÉE ORIENTÉE OBJET, BASÉE SUR LES TEMPLATES par exar
UNE LISTE DOUBLEMENT CHAINEE, CIRCULAIRE ET TEMPLATES par turnerom
Source avec Zip CLASSE CLISTE par bobbyantho
Source avec Zip LISTE CHAINÉE SUPPORTANT LES TEMPLATES par Zer0 le Her0

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire


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&lt;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 héritage & template [ par rolm ] Bonjour, J'aurai besoin d'un peu avec des tempates. En fait je voudrais créer une class qui hérite d'une class template mais d'un type donné. par e 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-


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,874 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales