【发布时间】:2018-02-14 15:48:31
【问题描述】:
以下声明借自cplusplus.com
template<class ForwardIterator, class T, class Compare>
ForwardIterator lower_bound(ForwardIterator first, ForwardIterator last, const T& val, Compare comp);
comp() 应该类似于这样:
template<class T>
bool comp(const T& v1, const T& v2);
问题是我不想在那里传递值类型。我想将迭代器传递给它,然后 shift 它们 好的,在取消引用之前,只需在 comp() 内默默地盯着它们。 (更不用说 - 记录它们。)有什么解决方法吗?
当然,我可以用自己的迭代器编写自己的容器类,当然也可以编写自己的std::lower_bound() 实现。这两种选择都相当不愉快。
【问题讨论】:
-
练习的最终目标是什么?你在
comp中说你想做的事情对我来说没有多大意义。听起来像XY problem。 -
嗯,这会有点用处。我会检查 Boost,否则是的,请自行选择。
-
@YSC "你的迭代器是 ContiguousIterator 吗?" - 现在,他们是。我已准备好将
std::vector用作此处的容器。有什么帮助吗?
标签: c++ std stl-algorithm