6.4.10 Le mot clé typedef

Vous en avez assez d'écrire toujours le type de la list ou du vector que vous utilisez à chaque fois que vous en avez besoin.

Il est vrai que c'est très contraignant et très peu souple. Par exemple, si vous faites une list de float, mais que après plusieurs essai, vous trouvez qu'une list de double serait plus appropriée, il vous faudra aller changer tout les floats que vous avez mis entre crochets par des doubles ce qui est fastidieux et qui va vous donner plein d'erreurs.

La solution est de définir un type avec typedef, et d'utiliser ce type comme un type normal.

Prenons un exemple :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <list>

typedef std::list<int> ListeInt;

using namespace std;

int main(int argc, char** argv){
	ListeInt listeEntiers;
	listeEntiers.push_back(1);
	listeEntiers.push_back(2);
	listeEntiers.push_back(3);
	listeEntiers.push_back(4);
	
	for(ListeInt::iterator it = listeEntiers.begin(); it != listeEntiers.end(); it++){
		cout << *it << endl;
	}
	return 0;
}

Je vous conseil de définir votre type avant d'utiliser un using namespace, ça évite les ambiguïtés.