【发布时间】:2017-03-01 06:08:58
【问题描述】:
我有一个按其整数索引排序的类对象向量。但是对象的索引是由类的成员函数生成的——所以没有int id被存储为成员变量。
class boundary
{
public:
int get_id();
}
std::vector<boundary> sample;
现在我需要找到boundary 对象,它是get_id() 生成的int id,与我正在搜索的int value 相同。
auto &iter = binary_search(sample.begin(),sample.end(), 5, custom_function)
//should compare iter.get_id() == 5
在这种情况下可以使用 binary_search 吗?我如何做到这一点?
【问题讨论】:
-
如果 id 是由
get_id函数生成的,并且没有将其存储在字段中,那么我很确定当所有对象调用在任何一种情况下,二分查找都是不切实际的。 -
请记住样本(向量)可能不包含您要查找的对象。在这种情况下,你希望你的函数返回什么?
-
@Andrzej,我正在搜索的对象应该在向量中。我必须断言它
标签: c++ algorithm stl binary-search