从范围结束开始搜索

时间:2014-07-25 19:49:20

标签: c++ algorithm stl parallel-processing

我想知道是否可以从范围的末尾开始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)

1 个答案:

答案 0 :(得分:4)

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

一起使用

当然你可以使用std::search和双向迭代器来应用迭代器适配器std::reverse_iterator或者使用容器的内置反向迭代器,例如类std :: vector的反向迭代器你在哪里可以使用成员函数rbeginrend