Je ne peux pas utiliser un type set
en tant qu'indicateur de taille pour un tableau, mais il est parfaitement judicieux de le faire pour les petits ensembles.Puis-je utiliser un type set en tant qu'index de tableau?
Supposons que j'ai le code suivant:
TFutureCoreSet = set of 0..15;
TLookupTable = record
FData: array[TFutureCoreSet] of TSomeRecord; //error ordinal type required
....
Le code suivant compile et travaux.
TFutureCoreSet = set of 0..15;
TLookupTable = record
FData: array[word] of TSomeRecord;
Ce casse cependant le lien entre le nombre autorisé d'états dans TFutureCoreSet
et les éléments de la table de consultation.
Existe-t-il un moyen simple de lier les deux alors quand on change les autres mises à jour?
Comment indexeriez-vous un tel tableau? 'FData [[1, 2, 4]]: = SomeRecord'? Pensez à toutes les combinaisons en accédant à un tel tableau. – Victoria
@Victoria, L'ensemble a 16 bits, donc le tableau aura 64k éléments. Vous utilisez simplement la valeur ordinale de l'ensemble comme valeur de recherche. Rien de compliqué. Jusqu'à 20 bits, il est parfaitement faisable d'utiliser un lookuptable. Avec 'set of byte' cela ne marchera évidemment pas :-) – Johan