Maison >développement back-end >C++ >Comment initialiser tous les éléments d'un tableau C à une valeur spécifique non nulle ?

Comment initialiser tous les éléments d'un tableau C à une valeur spécifique non nulle ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-28 22:03:11198parcourir

How to Initialize All Elements of a C   Array to a Specific Non-Zero Value?

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 :

  1. std::fill_n: À l'aide de la fonction std::fill_n de library:
std::fill_n(array, 100, -1);
  1. Bouclage: En C standard, créer une boucle pour attribuer des valeurs à chaque élément serait nécessaire:
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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn