Comment supprimer un élément d'un tableau (unidimensionnel bidimensionnel) ? - page 6

 
Aliaksandr Hryshyn:
La définition de la dimensionnalité pose-t-elle un problème ?

Il n'y a aucun problème avec la définition. L'obtention de tableaux de dimensions différentes en tant que paramètre de fonction pose des problèmes.

 
Les tableaux n'ont pas plus de 4 dimensions ici. Ainsi, vous pouvez écrire 4 fonctions différentes et c'est tout.
 
Ilya Malev:

Il n'y a aucun problème avec la définition. L'obtention de tableaux de dimensions différentes en tant que paramètre de fonction pose des problèmes.

Utilisez des classes pour ce genre de choses. Passez une instance d'une classe avec différents tableaux à la fonction...
 
Dmitry Fedoseev:
Les tableaux n'ont pas plus de 4 dimensions ici. Ainsi, vous pouvez écrire 4 fonctions différentes et c'est tout.

Vous ne pouvez pas du tout utiliser de tableaux de taille supérieure à 1. Si vous voulez manipuler quelque chose avec différents champs, vous pouvez utiliser un tableau de structures ou une liste d'objets. Personnellement, je fais toujours cela lorsque j'écris moi-même quelque chose. Mais dans le code de quelqu'un d'autre, que je rencontre aussi, je rencontre aussi des options comme un tableau multidimensionnel. Et c'est là que commence la partie amusante...

 
Aliaksandr Hryshyn:
Utilisez des classes pour ce genre de choses. Passez une instance d'une classe avec différents tableaux à la fonction...

Essayez de définir une classe de sorte qu'un appel de fonction s'appliquant à un tableau de différentes dimensions ait la même apparence.

 
Ilya Malev:

Questions normales, vous auriez dû ignorer les parenthèses dans le titre du fil. Sans connaître le nombre d'éléments - vous pouvez. Si vous ne connaissez pas la dimensionnalité, vous ne pouvez pas.

Laisse-moi te dire un terrible secret. Un tableau est unidimensionnel. N'importe quel type. Je vous ai déjà dit...

 
Алексей Тарабанов:

Je vais vous confier un terrible secret. Le tableau est unidimensionnel. N'importe quel type. Je vous ai déjà dit...


Ilya Malev:

Et qu'est-ce que cela a à voir avec votre tâche (classe de tâches - travail unifié avec des tableaux de différentes dimensions via des fonctions) ?

 
Ilya Malev:

Essayez de définir une classe de sorte qu'un appel de fonction à un tableau de différentes dimensions ait la même apparence.

Je veux dire que vous devez définir le(s) tableau(x) requis dans une classe et passer une instance de cette classe à la fonction.
 

Un phénomène intéressant...

Lorsque vous écrivez une fonction pour votre collection, la question se pose : vaut-il mieux qu'elle fonctionne rapidement (sans vérification), ou qu'elle soit infaillible, de sorte que le caractère raisonnable des paramètres puisse être vérifié et corrigé ?

void ArrayDelete(int & a[],int Start,int Count=1){
   ArrayCopy(a,a,Start,Start+Count);
   ArrayResize(a,ArraySize(a)-Count);
}

Ou avec une protection infaillible, de sorte que des paramètres raisonnables puissent être vérifiés et corrigés ? On voit ici que la version rapide n'est pas digne d'une collection, parce qu'elle est facile à écrire et qu'elle n'est pas très utile. Et la variante avec tous les contrôles n'est bonne que comme pièce de musée, car vous n'avez pas besoin de freins inutiles. Et c'est pourquoi vous n'en avez pas du tout besoin.

 
Aliaksandr Hryshyn:
Je veux dire que le ou les tableaux requis doivent être définis dans une classe et qu'une instance de cette classe doit être passée à une fonction.

Si l'on considère le problème sous cet angle, les tableaux multidimensionnels ne devraient pas être déclarés du tout - il faudrait plutôt utiliser des tableaux de structures avec différents champs. Mais la question est différente : que pouvons-nous faire avec un tableau existant de dimensions arbitraires (inconnues à l'avance) ?

Raison: