Ainsi, lorsque vous initialisez un tableau, vous pouvez lui atsortingbuer plusieurs valeurs au même endroit:
int array [] = {1,3,34,5,6}
mais que se passe-t-il si le tableau est déjà initialisé et que je veux remplacer complètement les valeurs des éléments de ce tableau dans une ligne
alors
int array [] = {1,3,34,5,6} array [] = {34,2,4,5,6}
ne semble pas fonctionner …
y a-t-il un moyen de le faire?
Il y a une différence entre l’ initialisation et l’ affectation . Ce que vous voulez faire n’est pas une initialisation, mais une affectation. Mais une telle affectation à un tableau n’est pas possible en C ++.
Voici ce que vous pouvez faire:
#include int array [] = {1,3,34,5,6}; int newarr [] = {34,2,4,5,6}; std::copy(newarr, newarr + 5, array);
Cependant, en C ++ 0x, vous pouvez le faire:
std::vector array = {1,3,34,5,6}; array = {34,2,4,5,6};
Bien sûr, si vous choisissez d’utiliser std::vector
au lieu de tableau brut.
Vous devez remplacer les valeurs une par une, par exemple dans une boucle for ou en copiant un autre sur un autre, par exemple en utilisant memcpy(..)
ou std::copy
par exemple
for (int i = 0; i < arrayLength; i++) { array[i] = newValue[i]; }
Veillez à vérifier correctement les limites et toute autre vérification nécessaire pour éviter un problème hors limites.
const static int newvals[] = {34,2,4,5,6}; std::copy(newvals, newvals+sizeof(newvals)/sizeof(newvals[0]), array);