gpt4 book ai didi

c++ - 是否可以将 bool T::operator < (const T& right) 等成员函数转换为 binary_function?

转载 作者:行者123 更新时间:2023-11-30 02:04:53 28 4
gpt4 key购买 nike

我想尽可能避免代码重复。假设我有一个类,例如,

class T {
int val;
bool operator < (const T& right) const { return val < right.val; }
}

我希望能够像这样调用 std::sort() ,

std::sort( SomeContainer.begin(), SomeContainer.end(), FuncAdaptedFromOp );

这是我在 StackOverflow 中的第一个问题。请原谅。

编辑

问题是该类可能有多个 bool T::Compare (const T& right) 函数。我还是想要一个适配器。举个例子,

class Edge {
Vertex u, v;
bool CompareSrc (const Edge& right) const { return u < right.u; }
bool CompareDest (const Edge& right) const { return v < right.v; }
}

有时我想按源 Vertex 排序,有时按目标 Vertex 排序。我只想知道这是否可能。

最佳答案

如果您不提供第三个参数,则将使用 < 运算符。

http://www.cplusplus.com/reference/algorithm/sort/

“第一个版本使用 operator< 比较元素,第二个版本使用 comp”。

关于c++ - 是否可以将 bool T::operator < (const T& right) 等成员函数转换为 binary_function?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10052565/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com