Tôi không thể sử dụng loại set
làm chỉ báo kích thước cho một mảng, tuy nhiên làm như vậy cho các bộ nhỏ là hoàn toàn hợp lý.Tôi có thể sử dụng loại thiết lập làm chỉ mục mảng không?
Giả sử tôi có đoạn mã sau:
TFutureCoreSet = set of 0..15;
TLookupTable = record
FData: array[TFutureCoreSet] of TSomeRecord; //error ordinal type required
....
Các mã sau biên dịch và các công trình.
TFutureCoreSet = set of 0..15;
TLookupTable = record
FData: array[word] of TSomeRecord;
Tuy nhiên, ngắt liên kết giữa số trạng thái cho phép trong TFutureCoreSet
và các yếu tố trong bảng tra cứu.
Có cách nào đơn giản để liên kết cả hai để khi một thay đổi các bản cập nhật khác?
Bạn sẽ lập chỉ mục mảng như thế nào? 'FData [[1, 2, 4]]: = SomeRecord'? Hãy suy nghĩ về tất cả các kết hợp khi truy cập mảng đó .. – Victoria
@Victoria, Tập hợp có 16 bit, do đó mảng sẽ có các phần tử 64k. Bạn chỉ cần sử dụng giá trị thứ tự của tập hợp làm giá trị tra cứu. Không có gì phức tạp cả. Lên đến 20 bit hoàn toàn khả thi của nó để sử dụng một lookuptable. Với 'bộ byte' rõ ràng sẽ không hoạt động :-) – Johan