ainsi, lorsque vous initialisez un tableau, vous pouvez lui attribuer plusieurs valeurs au même endroit:
int array [] = {1,3,34,5,6}
mais que faire si le tableau est déjà initialisé et que je veux remplacer complètement les valeurs des éléments de ce tableau sur 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 initialisation et affectation. Ce que vous voulez faire, ce n’est pas l’initialisation, mais l’affectation. Mais une telle affectation à array n'est pas possible en C++.
Voici ce que vous pouvez faire:
#include <algorithm>
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 faire ceci:
std::vector<int> array = {1,3,34,5,6};
array = {34,2,4,5,6};
Bien sûr, si vous choisissez d'utiliser std::vector
au lieu d'un tableau brut.
Vous devez remplacer les valeurs une par une, par exemple dans une boucle for, ou copier un autre tableau 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 à effectuer toute autre vérification nécessaire pour éviter tout problème hors limites.
const static int newvals[] = {34,2,4,5,6};
std::copy(newvals, newvals+sizeof(newvals)/sizeof(newvals[0]), array);