C++ Algorithm replace_copy_if()2024年8月30日 | 阅读 6 分钟 C++ Algorithm replace_copy_if() 函数用于将范围 [first, last) 复制到以 result 开头的范围,将那些满足 pred 返回 true 的元素替换为 new_value。它使用谓词 pred 而不是 operator== 来比较元素。 此函数检查源范围中的每个元素,如果满足指定的谓词,则替换它,同时将结果复制到新的目标范围中。 语法参数first:一个输入迭代器,指向要替换元素的范围中的起始位置。 last:一个输入迭代器,指向要替换元素的范围中的最终位置。 result:一个输出迭代器,指向存储结果序列的范围的第一个元素。 pred:如果元素的旧值要被替换,则必须满足的一元谓词。 old_value:要替换元素的旧值。 new_value:赋给具有旧值的元素的新值。 返回值replace_copy_if() 函数返回一个输出迭代器,指向结果序列中写入的最后一个元素的位置。 复杂度复杂性与 first 和 last 之间的距离呈线性关系:对每个元素应用 pred 并执行一次赋值。 数据竞争访问范围 [first1, last1) 中的对象。 result 范围内的对象和返回的值被修改。 异常安全如果 pred、元素赋值或迭代器上的操作中的任何一个抛出异常,此函数将抛出异常。 请注意,无效参数会导致未定义行为。 示例 1让我们看一个简单的例子来演示 replace_copy_if() 的用法 输出 10,10,2,10,2, 示例 2让我们看另一个简单示例 输出 Before replace_copy_if: 1 2 3 4 5 6 7 8 9 10 After replace_copy_if: 1 0 3 0 5 0 7 0 9 0 示例 3让我们看另一个简单示例 输出 Numbers { 10 20 10 15 12 7 9 10 } Total number of elements copied to Result = 8 Result { 30 30 30 30 30 7 9 30 } 示例 4让我们看另一个简单示例 输出 The original vector v1 is: ( 4 7 7 7 0 5 7 1 6 9 3 7 8 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ). The vector v1 with values of 70 replacing those greater than 6 in the 1st half & copied into the 2nd half is: ( 4 7 7 7 0 5 7 1 6 9 3 7 8 2 4 70 70 70 0 5 70 1 6 70 3 70 70 2 ). A list copy of vector v1 with the value -1 replacing those greater than 6 is: ( 4 -1 -1 -1 0 5 -1 1 6 -1 3 -1 -1 ). 下一主题C++ 算法 |
C++ 算法函数 search_n() C++ Algorithm search_n() 函数在容器 [first,last) 中搜索 count 个连续元素的出现,即搜索每个元素是否满足给定的 pred。返回满足条件的第一个元素的迭代器,否则...
阅读 2 分钟
C++ 算法 is_sorted() C++ 算法 is_sorted() 函数返回 true,如果范围 [first, last) 中的元素按升序排序。第一个版本使用运算符 < 比较元素,第二个版本使用 comp 比较元素。语法默认 (1) 模板 <class ForwardIterator> ...
阅读 4 分钟
C++ 算法函数 none_of() C++ 算法 none_of() 函数如果 'pred' 参数的值为 false 则返回 true。该值对于范围 [first, last) 中的所有元素都应为 false。语法模板 <class InputIterator, class UnaryPredicate> bool none_of (InputIterator first, InputIterator last, UnaryPredicate pred); 参数 first : 它指定...
阅读 2 分钟
C++ 算法 unique() C++ Algorithm unique() 函数用于转换序列,使得每个连续的重复元素都成为唯一的元素。第一个版本使用 operator== 比较元素,第二个版本使用给定的二元谓词 pred。语法相等性 (1) 模板 <class...
7 分钟阅读
C++ 算法函数 find_end () C++ 算法 find_end() 函数在容器中搜索模式的最后一次出现,或者说在容器中搜索序列小部分的最后一次出现。它基本上搜索 [first1,last1) 指定的范围以查找序列的出现,该序列...
阅读 2 分钟
C++ 算法函数 move() C++ 算法 move() 函数用于移动元素。它接受三个参数,然后将属于范围 [first,last) 的元素移动到以“result”开头的范围中。语法模板<class InputIterator, class OutputIterator> OutputIterator move(InputIterator first, InputIterator last, OutputIterator result); 参数 first: 它是...
阅读 2 分钟
C++ 算法 remove_if() C++ Algorithm remove_if() 函数用于从给定范围 [first, last) 中删除所有满足谓词的元素,而不会干扰其余元素的顺序。此函数不能更改容器的大小。它返回指向新结束位置的迭代器...
阅读 6 分钟
C++ 算法 stable_partition() C++ 算法 stable_partition() 函数用于对范围 [first, last) 中的元素进行分类,使得所有 pred 返回 true 的元素都排在所有 pred 返回 false 的元素之前,同时保留元素的相对顺序。注意:...
阅读 4 分钟
C++ 算法 _permutation () C++ 算法 _permutation() 函数用于将范围 [first, last) 中的元素重新排列成字典序更大的排列。排列是指一组事物或数字可以被排序的几种可能方式中的每一种,或者...
阅读 6 分钟
C++ 算法 binary_search() C++ 算法 binary_search() 函数用于检查范围 [first, last) 中的元素是否等同于 val(或二元谓词),否则为 false。范围 [first, last) 必须满足以下所有条件:根据 element < val 或 comp 进行分区...
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India