Chapitre 7. Tableaux et références
Jusqu'à présent, les seules variables que nous avons utilisées concernaient des valeurs individuelles telles que des nombres ou des chaînes de caractères. Dans ce chapitre, tu apprendras à stocker plusieurs valeurs du même type en utilisant une seule variable. Cette caractéristique du langage te permettra d'écrire des programmes qui manipulent de plus grandes quantités de données.
Par exemple, l'exercice 6-5 te demandait de vérifier si chaque lettre d'une chaîne de caractères apparaissait exactement deux fois. Un algorithme (que tu as peut-être déjà découvert) parcourt la chaîne 26 fois, une fois pour chaque lettre minuscule :
// outer loop: for each lowercase letterfor(charc='a';c<='z';c++){// inner loop: count how many times the letter appearsfor(inti=0;i<str.length();i++){...// if the count is not 0 or 2, return false
Cette approche des boucles imbriquées est inefficace, surtout lorsque la chaîne est longue. Par exemple, il y a plus de 3 millions de caractères dans Guerre et Paix; pour traiter l'ensemble du livre, la boucle imbriquée s'exécuterait environ 80 millions de fois.
Un autre algorithme initialiserait 26 variables à zéro, bouclerait la chaîne une fois, et utiliserait une déclaration if géante pour mettre à jour la variable pour chaque lettre. Mais qui veut déclarer 26 variables ?