begin process at 2012 05 27 14:27:55
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > CLASSE CLISTE

CLASSE CLISTE


 Information sur la source

Note :
Aucune note
Catégorie :Divers Classé sous :liste, template, classe, tri Niveau :Initié Date de création :06/05/2006 Date de mise à jour :07/05/2006 01:33:45 Vu / téléchargé :4 539 / 282

Auteur : bobbyantho

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

 Description

Cette classe est une classe template qui illustre l'utilisation des liste (algorithmes de tri...), quelles qu'elles soient.

Source

  • #pragma once
  • #include <windows.h>
  • #include "Fichier.h"
  • #define MIN(a,b) ((a) > (b) ? (b) : (a))
  • #define MAX(a,b) ((a) < (b) ? (b) : (a))
  • //Classe CListe
  • template <class TYPE> class CListe
  • {
  • protected:
  • int m_iNbElements;
  • TYPE* m_Element;
  • public:
  • //Constructeurs et destructeur
  • CListe(void);
  • CListe(const CListe& refListe);
  • CListe(const CListe* pListe);
  • CListe(const TYPE& Element);
  • CListe(const TYPE* pElement, int iNbElements);
  • ~CListe(void);
  • //Surcharges d'opérateurs
  • CListe operator=(const CListe& refListe);
  • CListe operator+=(const CListe& refListe);
  • CListe operator+(const CListe& refListe) const;
  • CListe operator+(const TYPE& argElement) const;
  • CListe operator-(const TYPE& argElement) const;
  • CListe operator*(const TYPE& argElement) const;
  • CListe operator/(const TYPE& argElement) const;
  • TYPE operator[](const int iIndex) const;
  • BOOL operator==(const CListe& refListe) const;
  • BOOL operator!=(const CListe& refListe) const;
  • operator const TYPE*() const;
  • //usage
  • TYPE Get(int iIndex) const;
  • TYPE* Get(void) const;
  • void Set(int iIndex, const TYPE& argElement);
  • void Set(const TYPE* TabElements, int iNbElements);
  • void Set(const CListe& refListe);
  • void Reset(void);
  • //Informations
  • inline int GetTaille(void) const;
  • TYPE GetMin(void) const;
  • TYPE GetMax(void) const;
  • TYPE GetSomme(void) const;
  • //Opérations
  • int IndexOf(const TYPE& argElement) const;
  • int IndexOf(const TYPE* pargElement) const;
  • void Ajoute(const TYPE& argElement);
  • void Ajoute(const TYPE* pargElement);
  • void Supprime(const int iIndex);
  • void Insert(int iIndex, const TYPE& argElement);
  • //tri
  • void Inverse(void);
  • void TriCroissant(void);
  • void TriDecroissant(void);
  • void Random(void);
  • //sauvegarde et récupération
  • BOOL SauverListe(const CChaine& strFichier);
  • BOOL OuvrirListe(const CChaine& strFichier);
  • };
#pragma once

#include <windows.h>
#include "Fichier.h"

#define MIN(a,b)  ((a) > (b) ? (b) : (a))
#define MAX(a,b)  ((a) < (b) ? (b) : (a))

//Classe CListe
template <class TYPE> class CListe
{
protected:
	int m_iNbElements;
	TYPE* m_Element;

public:
	//Constructeurs et destructeur
	CListe(void);
	CListe(const CListe& refListe);
	CListe(const CListe* pListe);
	CListe(const TYPE& Element);
	CListe(const TYPE* pElement, int iNbElements);

	~CListe(void);

	//Surcharges d'opérateurs
	CListe operator=(const CListe& refListe);

	CListe operator+=(const CListe& refListe);
	CListe operator+(const CListe& refListe) const;

	CListe operator+(const TYPE& argElement) const;
	CListe operator-(const TYPE& argElement) const;
	CListe operator*(const TYPE& argElement) const;
	CListe operator/(const TYPE& argElement) const;

	TYPE operator[](const int iIndex) const;

	BOOL operator==(const CListe& refListe) const;
	BOOL operator!=(const CListe& refListe) const;

	operator const TYPE*() const;

	//usage
	TYPE Get(int iIndex) const;
	TYPE* Get(void) const;
	void Set(int iIndex, const TYPE& argElement);
	void Set(const TYPE* TabElements, int iNbElements);
	void Set(const CListe& refListe);
	void Reset(void);

	//Informations
	inline int GetTaille(void) const;
	TYPE GetMin(void) const;
	TYPE GetMax(void) const;
	TYPE GetSomme(void) const;

	//Opérations
	int IndexOf(const TYPE& argElement) const;
	int IndexOf(const TYPE* pargElement) const;
	void Ajoute(const TYPE& argElement);
	void Ajoute(const TYPE* pargElement);
	void Supprime(const int iIndex);
	void Insert(int iIndex, const TYPE& argElement);

	//tri
	void Inverse(void);
	void TriCroissant(void);
	void TriDecroissant(void);
	void Random(void);

	//sauvegarde et récupération
	BOOL SauverListe(const CChaine& strFichier);
	BOOL OuvrirListe(const CChaine& strFichier);
};

 Conclusion

Cette classe utilise la classe fichier que vous trouvrez sur le site.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

07 mai 2006 01:33:45 :
...

 Sources du même auteur

Source avec Zip Source avec une capture CLASSE CGRAPHXY
Source avec Zip CLASSE CLECTEURVIDÉO
Source avec Zip CLASSE CTHREAD
Source avec Zip CLASSE CUSERINFO
Source avec Zip CLASSE CPIXEL

 Sources de la même categorie

Source avec Zip KISIEL CD INFO DRIVE par kisiel0147852
Source avec une capture SUPPRESSION DES REDONDANCES DE FICHIERS par cyberntique
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

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture LISTE AVEC LES CLASSES C++ par alberd_m
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
Source avec Zip LISTE CHAINÉE SUPPORTANT LES TEMPLATES par Zer0 le Her0
Source avec Zip LISTES CHAINÉES par vecchio56

Commentaires et avis

Commentaire de luhtor le 06/05/2006 21:11:09

Si c'est à but pédagogique, ok. Mais la STL fait deja tout ca.

Commentaire de bobbyantho le 07/05/2006 01:33:03

Merci BruNews, c'est vrai que j'ai hésité longtemps avant d'écrire ceci sans toutefois être convaincu de ce que je faisais. :)

Oui Luhtor, c'est à but pédagogique (peut-être aurais-je du le préciser !). Les classes templates peuvent être très intéressantes.

J'aimerais ajouter qu'il faut faire un #include "Liste.cpp" pour pouvoir utiliser une classe template. Si quelqu'un pouvais m'expliquer pourquoi ou mieux, me dire comment éviter ceci, j'en serais ravi. Merci

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

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 Class derivée , Template ( POURQUOI ES-CE CI DIFFICILE) ??? [ par nawakator ] J'ai d&#233;j&#224; pos&#233; cette question, mais je la repose car elle est essentiel pour mon projet!J'ai cr&#233;er un template permettant de g&#23 classe liste [ par programe_smi ] on m'a demand&#233; de&nbsp;r&#233;aliser une classe "liste"&nbsp;de listes cha&#238;n&#233;es comportant des objets de types diff&#233;rents pour cel Aide avec les template: comment implémenter élégamment une propriété avec getter/setter en C++? [ par Forman ] Bonjour à tous,je n'ai pas commencé le C++ depuis très longtemps donc désolé si ma question parait trop naïve. J'ai cherché à de nombreux endroits une constrution d'un arbre [ par eglentine ] bonjour, j'esseye de construire un arbre pour la compression jpeg d'une image, et j'utilise le methode de huffman.g utilisé une liste qui contiendra l Probleme d'inclusion de fichier (.hpp Vs .cpp)? [ par ano2345 ] Bonjour a tous,Je suis en train de developper sous Dev-C++ 4.9.9.2 une classe template MyVector basee sur la classe vector de telle maniere que je pui Classe - Liste Chainees [ par snoozriton ] Bonjour à tous, je me retrouve bloqué et je ne vois pas trop comment me décoincer. Il s'agit d'un exercice à faire. Dans cet exercice nous avons des E insertion par tri sur une liste chainée [ par Akhelios ] Salut tous, Je voulais réaliser une fonction d'ajout par tri dans une liste chaînée, sauf que ça marche pas et je me demande pourquoi, bon voilà le co 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: une file Template dans un Vecteur Template [ par grand_duck ] voici le probl&#232;me j'ai une classe de vecteur template et une classe de file template je voudrais mettre ma file template dans mon vecteur est-ce


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,608 sec (4)

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