web-dev-qa-db-fra.com

c ++ tableau attribution de plusieurs valeurs

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?

57
kamikaze_pilot

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.

51
Nawaz

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.

6
user195488
const static int newvals[] = {34,2,4,5,6};

std::copy(newvals, newvals+sizeof(newvals)/sizeof(newvals[0]), array);
1
sehe