Previous Contents Next

4   Chaînes de caractères et tableaux

Il existe plusieurs possibilités pour définir des tableaux et des chaînes de caractères, nous allons d'abord présenter (succinctement) les classes vector et string. Dans la section 17, nous présenterons la méthode classique (``à la C'') pour ces deux structures.

4.1   Chaînes de caractères - string

Pour utiliser la classe string, il faut placer en tête du fichier : # include <string>

Ensuite, on peut définir des variables de chaînes de la manière habituelle. ``string t;'' définit une variable de type string, ``string s(N,c);'' définit une variable s de longueur N (un entier) où chaque élément est initialisée avec le caractère c, ``string mot = "bonjour";'' définit une variable mot contenant la chaîne bonjour.

Etant donnée une chaîne s, s.size() représente la longueur de s et le i-ème caractère d'une chaîne s est désigné par s[i] avec i = 0,1,...s.size()-1. Etant données deux chaînes s et t, s+t est une nouvelle chaîne correspondant à la concaténation de s et t.

4.2   Tableaux - vector

Pour utiliser la classe vector, il faut placer en tête du fichier : # include <vector>

Un tableau est une structure typée : on distingue les tableaux sur les int, char, etc. On précise donc son type lors de la définition :
vector<int> Tab(100,5);   //  tableau d'entiers de taille 100 initialisé à 5
vector<int> Tab(50);      //  tableau d'entiers de taille 50 initialisé à 0
vector<double> T;         //  tableau de double, vide
La structure générale est donc ``vector<type> Nom(n,v);'' lorsqu'on initialise le tableau avec une valeur v. On peut aussi initialiser un tableau avec un autre tableau : ``vector<type> Nom1 = Nom2;'', les valeurs de Nom2 sont alors recopiées dans Nom1.

Etant donné un tableau T, T.size() correspond à la taille2 de T et T[i] désigne le i-ème élément avec i = 0, ...T.size()-1. Les types string et vector comportent de nombreuses autres fonctions de manipulation, nous n'en donnons ici qu'un aperçu, nous reviendrons sur leurs caractéristiques dans le cours.

Remarque 1   L'instruction ``vector<vector<int> > T2;'' définit un tableau à deux dimensions. Pour l'initialiser, on peut utiliser l'instruction suivante :
vector<vector<int> > T2(100,vector<int>(50,1));
i.e. on initialise chacune des 100 cases de
T1 avec un tableau de taille 50 rempli de 1 (``vector <int>(50,1)''). Le mystère de cette notation sera élucidé un peu plus tard. Patience...


Previous Contents Next