【问题标题】:start search from end of range从范围末尾开始搜索
【发布时间】:2014-07-25 19:49:19
【问题描述】:

我想知道是否可以从范围的末尾而不是开头开始 std::search()。我知道find_end 就足够了,但我想特别知道search 是否可以做到这一点。一个例子:

我有一个数据集 1 2 3 4 5 1 2 | 3 4 5 6 7 1 3 其中| 表示范围内的中断,这两个分区将异步执行。

是否可以从分区中的最后一点开始搜索范围1 2?我认为可以对范围和子序列进行某种反向迭代器?

search(reverse_iter_begin, reverse_iter_end, reverse_iter_subseq_begin, reverse_iter_subseq_end)

【问题讨论】:

  • 嗯,是的,有一个std::reverse_iterator
  • 感谢大家对这个问题投反对票,谢谢。

标签: c++ algorithm stl parallel-processing


【解决方案1】:

标准算法std::find_end 是专门为只有前向迭代器的容器编写的。例如,您可以将std::find_endstd::forward_list 一起使用

当然,您可以将 std::search 与双向迭代器一起使用,或者应用迭代器适配器 std::reverse_iterator 或使用容器的内置反向迭代器,例如 std::vector 类的反向迭代器,您可以在其中使用成员函数rbeginrend

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-02
    • 1970-01-01
    • 2014-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多