Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多搜索组合的数据结构设计 < >编码一个C++应用程序来存储和显示一组记录(记录的数量可以是5000的大小)。p>_C++_Data Structures - Fatal编程技术网

多搜索组合的数据结构设计 < >编码一个C++应用程序来存储和显示一组记录(记录的数量可以是5000的大小)。p>

多搜索组合的数据结构设计 < >编码一个C++应用程序来存储和显示一组记录(记录的数量可以是5000的大小)。p>,c++,data-structures,C++,Data Structures,需要根据记录中的某些属性搜索记录。让我们把这些属性称为分类 共有7个这样的分类,每个分类可能具有不同的唯一值,可以从所有可用记录中填充这些值。通过在该分类中的所有记录中创建一组所有唯一值,这就成为可能 用户可以从这些分类中选择多个值,并根据所有分类中的选择,在记录上进行搜索 现在问题=> 假设用户从分类1中选择一个值,则该值只能有一些匹配的记录。因此,这意味着应该可以只显示与当前选择匹配的其他分类中的有效值。如何根据当前选择从其他分类中筛选出无效值 例如:假设有3条记录,每条记录中有3列,可以在

需要根据记录中的某些属性搜索记录。让我们把这些属性称为分类

共有7个这样的分类,每个分类可能具有不同的唯一值,可以从所有可用记录中填充这些值。通过在该分类中的所有记录中创建一组所有唯一值,这就成为可能

用户可以从这些分类中选择多个值,并根据所有分类中的选择,在记录上进行搜索

现在问题=>

假设用户从分类1中选择一个值,则该值只能有一些匹配的记录。因此,这意味着应该可以只显示与当前选择匹配的其他分类中的有效值。如何根据当前选择从其他分类中筛选出无效值

例如:假设有3条记录,每条记录中有3列,可以在所有三列上搜索

Record1=> T1, E1, S1  
Record2=> T2, E2, S2  
Record3=> T3, E1, S2
因此,每个分类的可能值为

Classification1=> T1, T2, T3  
Classification2=> E1, E2, E3  
Classification3=> S1, S2, S3  
现在假设用户从classification1中选择T1/T2,从classification2中选择E1进行搜索。这意味着对于分类3来说,只显示S1就足够了


有效处理这种情况的正确数据结构是什么。

单链表和函数“filter”,它接受一个列表和一个谓词,将给出O(n)的结果。它将逐项遍历列表,根据每个项检查谓词。没有任何分类。试试看,应该很快

那么你需要快点吗?可能有一些索引,如关系数据库中的索引。但是仔细想想,你真的需要这么快吗?索引需要内存和时间来构建。在内部,它通常是一棵红黑树,即使它只是存储散列。您可以先扫描一个索引,这将使您的搜索集更窄,然后对剩下的内容应用筛选功能


但如果这不是一项研究任务,我会坚持只使用过滤器,或者在极端情况下,使用一些内存中的关系数据库

希望它比O(n)快,因为过滤器对话框需要为每个用户选择刷新,而不希望搜索每个用户选择的所有记录。关于过滤器组合的索引。有7种不同的分类,每个分类可以有不同数量的可能值。内存不是问题,但速度是。谢谢。@siva-elango-r,别忘了黛博斯。与中类似(如果通过键盘输入过滤器值)