Les listes.

Les listes.

list

Voir version :

Pas de dépendances

Télécharger :

#include <iostream>
#include <list>

using namespace std;    // certains compilateurs permettent de ne pas le mettre

void ShowList(list<int>& L)
{
    list<int>::iterator I;
    for(I=L.begin();I!=L.end();I++)
        cout << "element : " << *I << endl;
}

int main()
{
    list<int> L;
    L.push_front(5);
    L.push_back(7);
    L.push_front(19);
    L.push_back(6);
    ShowList(L);
    return 0;
}




Commentaires


  La philosphie est simple :
  
  Prenez des bouts de papiers, et mettez vous face à une table.
  Au début, vous avez une liste vide : donc la table vide.
  Vous allez prendre un papier, marquer (5) dessus, et le poser sur la table au milieu
  puis vous prenez un papier (7) que vous posez derriere (a droite) du papier que vous avez déja
  puis vous prenez un papier (19) que vous posez devant ce que vous avez (a gauche).
  puis vous prenez un papier (6) que vous posez derriere le tout (a droite)

  Si vous avez fait ça correctement, vous lisez, de gauche à droite
  19 - 5 - 7 - 6

  Lancez le programme : c'est ce que vous avez.

  ******* La code :

	list<int> L;
	--> on crée une liste qui stockera des int.
	Comprenez bien qu'on pourra stocker aisément des double, des float, des chars, ou meme des TRUCS (ou truc sera une classe qu'on aura créé)
	Une liste de ce qu'on veut !! (Template Powa !!)

	Puis ensuite, on utilise des méthodes :
	L.push_front(T);
	L.push_back(T);
	qui permettent d'ajouter un élément devant ou derriere, comme vu dans l'exemple des bouts de papiers ci dessus.

  Ensuite, on veut faire afficher la liste.
  J'ai créé une fonction ShowListe pour que ce soit dans un bloc.

  Je passe la liste PAR REFERENCE (avec le &) pour qu'elle ne soit pas copiée : ce qui ralentirait : il fadrait copier le liste avec tous les élements, ce qui est long si la liste fait plusieurs milliers d'éléments.

  Dedans, j'ai la ligne :

	list<int>::iterator I;

	qui crée un iterateur sur une liste de int.
	La syntaxe est vraiment C++. A la rigueur, vous retenez juste qu'on crée un itérateur ainsi.
	Un itérateur sera un CURSEUR qui permettra de parcourir la liste.
	Si vous aimez les pointeurs : un itérateur est une abstraction de pointeur, il se manipule comme un pointeur, sans en etre un.
	voir l'intro des STL pour essayer de mieux comprendre.

    for(I=L.begin();I!=L.end();I++)

    va faire bouger l'itérateur du 1er élément (L.begin() au derniere L.end() )
	le ++ est surchargé pour I : il lui permet de passer à l'élément suivant.

	cout << "element : " << *I << endl;

  affiche l'élément ou est l'itérateur : l'opérateur unaire * est surchargé pour les itérateurs pour retourner l'élément regardé (pour faire comme avec les pointeurs)
  

Laissez un commentaire / post a comment