gpt4 book ai didi

c++ - C++ 中的 upper_bound/lower_bound 函数

转载 作者:行者123 更新时间:2023-11-28 02:52:19 25 4
gpt4 key购买 nike

我正在尝试使用这些函数找到我的 vector (可能的 vector )的上限和下限。结构数据包含 3 个字符串,我使用 string date 进行比较。

bool myCompare(Data &a, Data &b) {
return (a.date == b.date);
}

#include <algorithm>

std::vector<Data>::iterator iterl, iteru;
sort(possible.begin(), possible.end(), compare);
iterl = std::lower_bound(possible.begin(), possible.end(), struct1, myCompare);
iteru = std::upper_bound(possible.begin(), possible.end(), struct2, myCompare);

但是通过这样做,编译器会显示以下消息:

Main.cpp:95:18: note: in instantiation of function template specialization 'std::__1::upper_bound<std::__1::__wrap_iter<data *>,
data, bool (*)(data &, data &)>' requested here
iteru = std::upper_bound(possible.begin(), possible.end(), struct2, myCompare);

使用这些函数的正确方法是什么?

最佳答案

比较对象的签名是bool cmp(const Type1 &a, const Type2 &b);,需要在myCompare的参数中加上const

关于c++ - C++ 中的 upper_bound/lower_bound 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22780395/

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