Comment est la plage base de travail pour la plaine des tableaux?

En C++11, vous pouvez utiliser une gamme à base de for, qui agit comme le foreach d'autres langues. Il fonctionne même avec du C des tableaux:

int numbers[] = { 1, 2, 3, 4, 5 };
for (int& n : numbers) {
    n *= 2;
}

Comment fait-il savoir quand s'arrêter? Il ne fait que travailler avec des tableaux statiques qui ont été déclarées dans le même champ d'application de la for est utilisé? Comment utiliserez-vous cette for avec des tableaux dynamiques?

  • Il n'y a pas "dynamique" des tableaux en C ou C++ en soi - il y a des types de pile et puis il y a des pointeurs qui peut ou ne peut pas pointer vers un tableau ou un allouée dynamiquement bloc de mémoire qui pour la plupart se comporte comme un tableau. Pour n'importe quel tableau de type T[n], sa taille est codée dans le type et peut être consulté par for. Mais le moment que le tableau se désintègre à un pointeur, la taille de l'information est perdue.
  • Dans votre exemple, le nombre d'éléments dans numbers est sizeof(numbers)/sizeof(int), par exemple.
InformationsquelleAutor Paul Manta | 2011-10-29