我试图实现一个RedBlack树,该树包含一些2D点。我想要有2棵RedBlack树,第一棵根据它们的第一个元素(比如x)排序Points,第二个根据第二个元素(比如y)排序它们。我不想为这个任务分配两棵树。所以我决定将一个函数传递给一个比较点的红黑树的构造函数。例如:将函数赋值给另一个
bool xCompare(Point a, Point b) {return a.x < b.x ;}
bool yCompare(Point a, Point b) {return a.y < b.y ;}
因此我可以这样写:
RedBlackTree A(xCompare); RedBlackTree B(yCompare);
的问题是,我不知道我山楂可以通过这个功能保存到构造函数,以便每次我打电话insert
函数时,插入是基于这个传递的函数。例如,如果我写:
A.insert(make_point(2,3));
A.insert(make_point(7,5));
A.insert(make_point(11,1));
在A
的问题应该基于xCompare
进行排序。但我不知道如何在我的课程中保存这个xCompare
函数(如私人函数),以便insert
可以访问它。