Initialisation des éléments d'un tableau à une valeur par défaut en C
La question se pose d'une initialisation de tableau en C utilisant la syntaxe :
int array[100] = {-1};
Cette initialisation définit le premier élément à -1 et laisse les éléments restants à 0, ce qui n'est pas le comportement souhaité. Pour résoudre ce problème, les points suivants doivent être pris en compte :
Interprétation de la syntaxe
La syntaxe int array[100] = {-1}; dit essentiellement : "réglez le premier élément sur -1 et le reste sur 0". Lorsque des éléments sont omis dans une déclaration de tableau, ils sont automatiquement initialisés à 0 par défaut.
Définir tous les éléments sur une valeur non nulle
Pour initialiser tous les éléments à une valeur non nulle comme -1, on ne peut pas se fier uniquement à l'initialisation de la valeur omise par défaut. Au lieu de cela, les approches suivantes peuvent être utilisées :
std::fill_n(array, 100, -1);
for (int i = 0; i < 100; i++) { array[i] = -1; }
Comparaison de vitesse
La vitesse d'initialisation par défaut par rapport à une boucle est pas significativement différent. Les deux approches initialisent les éléments de manière séquentielle, de sorte que la complexité temporelle reste la même. Cependant, l'utilisation de std::fill_n peut enregistrer quelques instructions par rapport à une boucle manuelle, ce qui la rend légèrement plus rapide dans la plupart des cas.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!