2D tableau int en C++
Donc je veux initialiser un int tableau 2d très rapidement, mais je ne peux pas comprendre comment le faire. J'ai fait quelques recherches et aucun d'entre eux disent comment initialiser un tableau 2D, sauf à faire:
int [SOME_CONSTANT][ANOTHER_CONSTANT] = {{0}};
En gros, j'ai 8 sommets, et je suis énumérant les 4 sommets de chaque face d'un cube dans un tableau. J'ai essayé ceci:
int[6][4] sides = {{0, 1, 2, 3}, {4, 5, 6, 7}, {0, 4, 7, 3}, {7, 6, 2, 3}, {5, 1, 2, 6}, {0, 1, 5, 4}};
Mais qui me dit qu'il y a une erreur avec "parties", et qu'elle attendait un point-virgule. Est-il possible d'initialiser un tableau rapidement comme cela?
Merci!
Vous devez vous connecter pour publier un commentaire.
Vous avez la [][] sur le mauvais côté. Essayez ceci:
Gardez à l'esprit que ce que vous avez vraiment est:
(Un pointeur vers un pointeur d'entiers). C'est des côtés qui a les dimensions, pas l'int. Par conséquent, vous pouvez aussi faire:
Je pense que Tu voulais dire
int array[n][m]
se comporte commeint array[n * m]
.En fait,
array[i][j] = array[m * i + j]
pour tousi, j
.Donc
int array[2][3] = {1, 2, 3, 4, 5, 6};
est une déclaration valide et, par exemple,array[1][1] = array[3 * 1 + 1] = array[4] = 5
.Je ne suis pas un régulier programmeur c++ mais je ressemble à
int sides[6][4]
semble compilation tandis queint[6][4] sides
échoue. Les langages tels que C# vous permet d'avoir la[][]
sur les deux côtés, mais apparemment c++ n'est pas.int sides[6][4] = ...
devrait faire l'affaire. Cela sonne comme vous peut-être à venir à partir d'un Java (ou autre langue) arrière-plan, donc je ne le recommande C++ livre Le Définitif, C++ Guide du Livre et de la Liste pour plus de détails.Oui, le type de côtés est
int[6][4]
, mais le C++ a confusion syntaxe parfois. La façon de déclarer ladite matrice est:Vous lancer dans ce avec des pointeurs de fonction trop, mais pire encore:
Avec des pointeurs de fonction, vous pouvez faire ceci:
Malheureusement, il n'y a pas de tour de magie pour les tableaux.
je voudrais faire un tableau à l'extérieur de la fonction et juste de l'attribuer à votre local. ce sera très probablement invoquer memcpy ou tout simplement inline memory copie boucle
c'est le plus rapide, vous pouvez obtenir