集合是Pascal特有的数据类型,集合用一种有效的手段来表示一组有序数、字符和枚举值。声明一个集合用关键字 Set Of ,并在其后跟上有序类型或一个集合可能值的有限子集。示例如下:
Type
TCharSet = Set Of Char ; //可能的值: #0-#255;
TEnum = (Monday,Tuesday,Wednesday,Thursday,Fridy);
TEnumSet = set of TEnum; //包含了TEnum值的任何组织;
TSubrangeSet = set of 1..10; //可能的值:1-10;
TAlphaSet = Set of 'A'..'Z'; //可能的值:‘A’-‘Z’;
注意:一个集合最多只能有255个元素。另外,只有有序的类型才能跟关键字 set of ,因此下列的代码是非法的:
Type
TIntSet = set of Integer; //非法,元素太多了超出255个元素
TStrSet = set of String //非法,不是有序的类型
集合在内部以位的形式存储他的元素,这使得在速度和内存利用上更有效。集合如果少于32个元素,他就存储在CPU的寄存器中,这样效率就更高了,为了用集合类型得到更高的效率。记住,集合的基本类型的元素数目要小于32.
1,使用集合
当使用集合的元素时,使用方括号。下面代码表明如何使用集合类型的变量并给它赋值。
Type
TCharSet = Set of char;
TEnum = (Monday, Tuesday, wednesday,Thursday,Friday,Saturday,Sunday);
TEnumSet = set of TEnum ;
var
CharSet : TCharSet ;
EnumSet : TEnumSet;
SubrangeSet : set of 1..10;
AlphaSet : Set of 'A'..'Z';
begin
CharSet := ['A'..'J','a','m'];
EnumSet := [Saturday, Sunday];
SubrangeSet := [1,2,4..6];
AlphaSet :=[];
end;
end;