C++ 根据不同函数排序的std::向量的交集

C++ 根据不同函数排序的std::向量的交集,c++,stl,vector,intersection,C++,Stl,Vector,Intersection,我有int向量v1,v2,v3。。。v10。每个都有一些100000个元素。每个向量按不同的因子排序(因此有10个因子函数f1,f2,…f10)。因此,尽管它们是按自身排序的,但相对于彼此,它们是未排序的 我想找到这10个向量的交集,然后我想根据其中一个因子对输出进行排序。例如,应根据f1对结果进行排序。所以当我把这10个向量和因子函数一起传递给intersect排序函数时,我会得到一个输出向量,它只包含所有向量中的元素,按照f1排序。进行此操作的最佳方法是什么 只需使用几次std::set_i

我有int向量v1,v2,v3。。。v10。每个都有一些100000个元素。每个向量按不同的因子排序(因此有10个因子函数f1,f2,…f10)。因此,尽管它们是按自身排序的,但相对于彼此,它们是未排序的


我想找到这10个向量的交集,然后我想根据其中一个因子对输出进行排序。例如,应根据f1对结果进行排序。所以当我把这10个向量和因子函数一起传递给intersect排序函数时,我会得到一个输出向量,它只包含所有向量中的元素,按照f1排序。进行此操作的最佳方法是什么

只需使用几次
std::set_intersection()
。我认为需要两个临时向量交替使用来存储结果。如果你只想对每个向量进行一次遍历,你只需要使用它的一个通用版本,可能会保留一个当前最小值的优先级队列。

所有向量都是按照相同的顺序排序的吗?不是。有不同的顺序。每个向量排序所依据的函数是不同的。