例如,如果我有一个 class Cell
,我想根据以下函数对其进行排序(x
这里y
是int
带有访问器的成员变量):
bool sortByCoordinates(const Cell& c1, const Cell& c2) {
return c1.getX() < c2.getX() || (c1.getX() == c2.getX() && c1.getY() < c2.getY());
}
放置此功能的最佳位置到底在哪里,以便我可以将它与诸如 的功能一起使用std::sort
?
在示例中,他们只是将方法浮动在上面需要它的源文件中,但实际上我想让它与Cell
类相关联。我知道我可以覆盖,operator<
但可能还有其他排序方法我想通过它来排序Cell
,而且无论如何为了代码清晰起见,我不是覆盖运算符的忠实粉丝。
目前我将它作为static
我的文件中的一种方法Cell.h
,以便在排序时可以调用它:
std::sort(cells.begin(), cells.end(), Cell::sortByCoordinates);
这是多个(甚至单个)自定义排序函数的最佳实践吗?头文件是否适合它们?如果不是,那是什么?