gpt4 book ai didi

c++ - 如何在比较中使用成员函数?

转载 作者:太空宇宙 更新时间:2023-11-04 16:20:24 24 4
gpt4 key购买 nike

比如我有一个类

class A
{
public:
int Value() const;
};

如何在 std::lower_bound 函数中使用 A::Value() 作为比较?

std::vector<A> v;
std::lower_bound<v.begin(), v.end(), ???>(v, 1);

以及如何在 v 中找到具有给定 Value 的元素。

std::find_if<???, ???>(v.begin(), v.end(), ???); // or use other function

最佳答案

您需要传递一个二进制谓词来比较两个 A 实例。例如

std::lower_bound(v.begin(), 
v.end(),
[](const A& lhs, const A& rhs)
{ return lhs.Value() < rhs.Value(); });

或者,如果您不支持 C++11,

bool comp(const A& lhs, const A& rhs)
{
return lhs.Value() < rhs.Value();
}

std::lower_bound(v.begin(), v.end(), comp);

至于find_if,原理是相似的,除了你需要一个一元谓词,即一个接受单个A并返回一个bool<的仿函数.

关于c++ - 如何在比较中使用成员函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17450350/

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