标准库中是否有子序列算法?

时间:2014-01-07 21:58:41

标签: c++ c++11

我正在寻找标准库函数,如果[first2, last2)范围内存在范围[first1, last1),则该函数返回true。名称为std::is_subsequence的东西。似乎这样的事情在标准中是显而易见的但由于某种原因它不存在(或者我至少找不到它)。有没有这样的功能或方法呢?

2 个答案:

答案 0 :(得分:6)

std::search

中的

<algorithm>

std::search at cplusplus.com
std:: search at cppreference.com

  

子序列的搜索范围
  搜索范围[first1,last1],查找[first2,last2]定义的序列的第一次出现,并将迭代器返回到其第一个元素,如果没有找到则出现,则返回last1。

答案 1 :(得分:1)

这取决于您的序列是否有序以及如何确定一个序列存在于另一个序列中。例如,对于有序序列,存在算法std::include。对于无序序列,您可以检查一个序列是否是另一个序列的间隔。这些是算法std::searchstd::find_end