Affectation d’un tableau c ++ à plusieurs valeurs

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);