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

 
Vous pourriez, bien sûr, ignorer les coûts et les dépenses et réécrire un tableau de n'importe quelle dimension dans un tableau à 1 dimension nouvellement créé dans #define avant d'appeler la fonction (et ensuite le réécrire à nouveau), mais les coûts seront pitoyables.
 
Alexey Viktorov:

Pourquoi ça n'aide pas ?

...

Parce que ni le nombre de dimensions du tableau ni la taille de l'une des dimensions ne déclencheront la surcharge. Et passer des paramètres qui peuvent être définis automatiquement dans une fonction n'est pas une décision très sage.

 
Dmitry Fedoseev:

Parce que ni le nombre de dimensions du tableau ni la taille de l'une des dimensions ne déclencheront la surcharge. Et passer des paramètres qui peuvent être définis automatiquement dans une fonction n'est pas exactement une sage décision.

Oui, j'ai déjà réalisé que c'est une perte de temps.

 
Dans l'ensemble, c'est un sujet intéressant, mais il est très vaste et complexe pour moi, quelque chose qui demande des années d'expérience pour être abordé.
 
Seric29:
Dans l'ensemble, c'est un sujet intéressant, mais il est très vaste et compliqué pour moi, quelque chose qui demande des années d'expérience pour être abordé.

N'entrez pas trop dans les détails, ils veulent rendre tout trop universel, mais vous pouvez très bien vivre sans.

 
En fait, dans la première réponse au fil de discussion, une recette universelle a été donnée. Il suffit de l'allumer et de le tester soi-même, mais on ne peut pas tout mâcher et le mettre dans sa bouche, n'est-ce pas ?
 
Ilya Malev:
En fait, dans la première réponse du fil de discussion, une recette universelle a été donnée. Vous devez juste l'allumer et le tester vous-même, mais vous ne pouvez pas tout mâcher et le mettre dans votre bouche, n'est-ce pas ?

Ilya, prends-tu vraiment le sujet comme quelque chose de sérieux ? Juste pour jouer et s'amuser un peu... Vous avez donné une réponse fonctionnelle : tout vers un tableau unidimensionnel et retour, quelle que soit la dimension. Ma réponse est la même que la vôtre, il n'y a que de petits détails techniques qui ne changent pas l'essentiel. Je n'ai pas compris la définition et les coûts déplorables.

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

Ilya, prends-tu vraiment le sujet comme quelque chose de sérieux ? Juste pour jouer et s'amuser un peu... Vous avez donné une réponse fonctionnelle : tout vers un tableau unidimensionnel et retour, quelle que soit la dimension. Ma réponse est la même que la vôtre, il n'y a que de petits détails techniques qui ne changent pas l'essentiel. Je ne comprends pas ce que vous voulez dire à propos du coût et du coût déplorable.

Non, au contraire, ce n'est pas grave, je viens juste de réexpliquer à TC où chercher une solution (le premier post est le plus susceptible de fonctionner, bien que je n'aie pas vérifié). Et cela a déclenché toutes sortes de bavardages :)

Bien que la situation soit triste avec ces tableaux en μl en fait, une autre chose est qu'ils ne sont pas nécessaires dans 99% des cas. Quand on a la tête sur les épaules, tout codeur utilise des structures ou même des objets.

La définition que j'ai écrite résout le problème que j'ai posé ;)) - Un appel à ArrayDel exécute le code, écrit par Dmitry, pour différents tableaux. Certes, il ne s'agit pas d'une fonction, mais d'un "cataplasme du mort", comme on dit. En parlant des coûts de définition, si vous voulez vraiment exécuter un paramètre int ar[] pour n'importe quel tableau, vous pouvez faire ce qui suit (c'est une simplification, en fait le nombre de mesures devrait être passé là aussi) :


#property strict

#define  PackAndDel(A,S,C) { int tmp[]; ArrayCopy(tmp,A); ArrayDelete(tmp,S,C); ArrayCopy(A,tmp); }

void ArrayDelete(int &ar[], int start, int count)
 {

  // ..... ;

 }



void OnStart ()

{

  int ar1[];

  int ar2[][5];

  int ar3[][6][2];

  PackAndDel( ar1, 0, 1 );

  PackAndDel( ar2, 4, 1 );

  PackAndDel( ar3, 1, 3 );

}