C++ 算法 remove_copy_if()2024年8月30日 | 5分钟阅读 C++ 算法 remove_copy_if() 函数用于将范围 [first, last) 中的所有元素复制到始于 result 的范围中,除了那些 pred 返回 true 的元素,同时不打乱剩余元素的顺序。 此函数无法更改容器的大小。
语法参数first:一个前向迭代器,指向要从中移除元素的范围中第一个元素的位置。 last:一个前向迭代器,指向要从中移除元素的范围中最后一个元素之后的位置。 result:一个输出迭代器,指向要将元素移除到的范围的初始位置。 pred:如果元素的值要被替换,则必须满足的条件。 返回值一个前向迭代器,指向复制范围的新结束位置 (last),该范围包括 [first, last) 中的所有元素,除了那些 pred 将返回 true 的元素。 复杂度复杂度在范围 [first, last) 内是线性的:对每个元素应用 pred,并对未移除的元素执行赋值操作。 数据竞争访问范围 [first, last) 中的对象。 result 和返回值之间的范围中的对象会发生变化。 异常如果 pred、元素赋值或迭代器上的操作中的任何一个抛出异常,此函数将抛出异常。 请注意,无效参数会导致未定义行为。 示例 1让我们看一个简单的例子来演示 remove_copy_if() 的用法 输出 2,4,6,8, 示例 2让我们看另一个简单示例 输出 elements of v1 before remove_copy: 10 11 12 13 14 15 16 17 18 19 20 elements of v1 after remove_copy: 10 11 12 13 14 15 16 17 18 19 20 After removing Odd Numbers from v1 copy result in vector v2 10 12 14 16 18 20 0 0 0 0 示例 3让我们看另一个简单示例 输出 Numbers { 10 20 10 15 12 25 30 10 } Total number of elements copied to Result = 6 Result { 10 20 10 15 12 10 0 0 } 示例 4让我们看另一个简单示例 输出 The original vec1 vector data: 0 1 2 3 4 5 6 7 8 9 10 5 5 5 The original vec1 vector data randomly shuffled: 4 10 5 5 0 5 5 1 6 9 3 7 8 2 After the remove_copy_if() operation, the vec1 vector is left unchanged as: 4 10 5 5 0 5 5 1 6 9 3 7 8 2 vec2 vector is a copy of vec1 vector with values greater than 7 removed: 4 5 5 0 5 5 1 6 3 7 2 下一主题C++ 算法 |
C++ 算法函数 adjacent_find() C++ Algorithm adjacent_find() 函数在范围 [first, last] 上执行搜索操作,以查找两个连续匹配元素的首次出现。如果找到这样的元素,则返回指向这两个元素中第一个元素的迭代器。否则,返回最后一个...
阅读1分钟
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++ 算法 binary_search() C++ 算法 binary_search() 函数用于检查范围 [first, last) 中的元素是否等同于 val(或二元谓词),否则为 false。范围 [first, last) 必须满足以下所有条件:根据 element < val 或 comp 进行分区...
5 分钟阅读
C++ 算法 partial_sort() C++ 算法 partial_sort() 函数用于重新排列范围 [first, last) 中的元素,使得 first 和 middle 之间的元素将被排序,而 middle 和 last 之间的元素将处于未指定顺序。这...
阅读 6 分钟
C++ 算法 iter_swap() C++ 算法 iter_swap() 交换两个迭代器 a 和 b 所指向的元素。语法模板 <class ForwardIterator1, class ForwardIterator2> void iter_swap (ForwardIterator1 a, ForwardIterator2 b); 参数 a: 要交换值的其中一个前向迭代器。b: 要交换值的第二个前向迭代器...
7 分钟阅读
C++ 算法函数 find_if_not() C++ 算法 find_if_not() 函数返回范围内谓词值为 false 的第一个元素的值,否则返回范围的最后一个元素。语法模板 <class InputIterator, class UnaryPredicate> InputIterator find_if_not (InputIterator first, InputIterator last, UnaryPredicate pred); 参数 first: 它指定了...
阅读 2 分钟
C++ 算法函数 find_end () C++ 算法 find_end() 函数在容器中搜索模式的最后一次出现,或者说在容器中搜索序列小部分的最后一次出现。它基本上搜索 [first1,last1) 指定的范围以查找序列的出现,该序列...
阅读 2 分钟
C++ 算法 remove_if() C++ Algorithm remove_if() 函数用于从给定范围 [first, last) 中删除所有满足谓词的元素,而不会干扰其余元素的顺序。此函数不能更改容器的大小。它返回指向新结束位置的迭代器...
阅读 6 分钟
C++ 算法 reverse() C++ 算法 reverse() 函数用于反转范围 [first, last) 内元素的顺序。语法模板 <class BidirectionalIterator> void reverse (BidirectionalIterator first, BidirectionalIterator last); 注意:BidirectionalIterator 是一种迭代器,用于以正向和...
阅读 4 分钟
C++ 算法 max() C++ 算法 max() 函数可以通过以下 3 种方式使用:它比较其参数中传递的两个值,并返回其中较大的一个。如果两者相等,则返回第一个。它还使用二元...比较这两个值。
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India