C++ 算法函数 copy_if()

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

C++ 算法 copy_if() 函数用于将容器 [first,last] 中的元素复制到另一个从 result 开始的容器中,前提是 pred 的值为 true。

语法

参数

first:它是一个输入迭代器,指向范围的第一个元素,该元素本身包含在范围内。

last:它是一个输入迭代器,指向范围的最后一个元素,该元素本身不包含在范围内。

result:它是一个输出迭代器,指向新容器的第一个元素,元素将被复制到该容器中。

pred:它是一个一元函数,接受一个元素作为参数并检查指定的条件。

返回值

返回新范围(从 result 开始)中最后一个元素的迭代器。

示例 1

输出

b contains: 20 10 4

示例 2

输出

The new vector using copy_if contains:7 9 0 0 0 0

复杂度

函数的时间复杂度是从第一个元素到最后一个元素的线性复杂度。

数据竞争

部分或全部容器对象被访问。

异常

如果任何容器元素抛出异常,则函数会抛出异常。