C++ 算法函数 find_end()

2024 年 8 月 30 日 | 阅读 2 分钟

C++ 算法 find_end() 函数在容器中搜索模式的最后一次出现,或者说序列的一小部分在容器中的最后一次出现。它基本上搜索由 [first1,last1) 指定的范围中,由 [first2,last2) 定义的序列的出现。如果找到出现,则返回指向第一个元素的迭代器,否则返回 last1。

语法

参数

first1:这是一个前向迭代器,指向范围 [first1, last1) 中的第一个元素,其中元素本身包含在范围内。

last1:这是一个前向迭代器,指向范围 [first1, last1) 中的最后一个元素,其中元素本身不包含在范围内。

first2:这是一个前向迭代器,指向范围 [first2, last2) 中的第一个元素,其中元素本身包含在范围内。

last2:这是一个前向迭代器,指向范围 [first2, last2) 中的最后一个元素,其中元素本身不包含在范围内。

pred:这是一个二元函数,接受两个元素作为参数并执行函数设计好的任务。

返回值

该函数返回一个迭代器,指向范围 [first1,last1) 中 [first2,last2) 最后一次出现的第一个元素。如果未找到序列,则该函数返回 last1 值。

示例 1

输出

patt1 is last found at the position 5
patt2 is last found at the position 3

示例 2

输出

11

复杂度

函数的复杂度由 count2*(1+count1-count2) 指定。这里 countX 指定 firstX 和 lastX 之间的距离。

数据竞争

访问两个范围中的对象。

异常

如果任何参数抛出异常,则该函数会抛出异常。