Delphi中有HashSet吗?
我知道使用set最多可以容纳255个项目.最新的Delphi编译器中是否有HashSet,例如西雅图的XE8
我已经声明了类似于以下的类型.
type
TLikes = record
Name : string[20];
favColours : array of string[20];
faves = array of TLikes;
Run Code Online (Sandbox Code Playgroud)
填充记录后,我将它们保存为二进制文件,因此结构如下所示.
[John], [Green] [White] [Blue]
[Paul], [Blue] [Red] [White] [Green]
[David], [Red] [Blue] [Green]
[Bob], [White] [Blue]
[Peter], [Blue] [Green] [Red]
Run Code Online (Sandbox Code Playgroud)
例如,很容易找出大卫喜欢的颜色.当我想要知道谁喜欢蓝色时,会出现一个小问题.所以我所做的就是构建第二个文件,就像这样......
[Blue], [John] [Paul] [David] [Peter] [Bob]
[Red], [David] [Paul] [Peter]
[White], [Bob] [David] [John] [Paul]
[Green], [John] [David] [Paul] [Peter]
Run Code Online (Sandbox Code Playgroud)
但有些东西告诉我,我不应该真的需要创建第二个文件/数据结构,它看起来效率低下.
这是一个更大的问题......
如果我需要找到谁喜欢David喜欢的任何组合怎么办?我的结果将是......
Blue and red and green = Paul, David, Peter
Blue and red = Paul, David, Peter
Blue …
Run Code Online (Sandbox Code Playgroud)