我使用CGAL将数百万个3D点的内存映射文件作为STL向量。给定一个将数据集分成大致相等部分的任意平面,我想对数据集进行排序,使得所有内部点在向量中是连续的,同样也是外部点。然后需要将此过程重复到任意深度,从而创建非轴对齐的BSP树。
由于数据集的大小,我希望尽可能地做到这一点。我有一个谓词仿函数,我用它来创建一个filtered_iterator,但当然不会对点进行排序,只是跳过不匹配的点。所以我可以创建第二个向量并将已排序的点复制到其中,并重新使用原始向量循环方式,但我想尽可能避免使用,如果只是为了保持标记每个空格的开头和结尾的迭代器。