C++ 算法 remove_if()2024年8月30日 | 阅读4分钟 C++ 算法 remove_if() 函数用于从给定范围 [first, last) 中删除所有满足特定谓词的元素,而不改变剩余元素的顺序。
语法参数first:一个前向迭代器,指向要从中移除元素的范围中第一个元素的位置。 last:一个前向迭代器,指向要从中移除元素的范围中最后一个元素之后的位置。 pred:接受一个元素作为参数的一元谓词函数,如果元素的某个值需要被替换,则必须满足该谓词。 返回值一个前向迭代器,指向修改后范围的新结束位置 (last),如果 first 和 last 相等,则指向第一个元素。 复杂度复杂性与范围 [first, last) 成线性关系:对每个元素应用 pred,并可能对其中一些元素执行赋值操作。 数据竞争范围 [first, last) 中的对象被访问并可能被修改。 异常安全如果 pred、元素赋值或迭代器上的操作抛出异常,此函数将抛出异常。 注意:无效参数会导致未定义行为。示例 1让我们看一个简单的例子来演示 remove_if() 的用法 输出 Original vector : 1 2 3 4 5 6 7 8 9 10 After remove_if : 2 4 6 8 10 示例 2让我们看另一个简单示例 输出 Vector v1 is ( 4 7 7 7 0 5 7 1 6 9 3 7 8 2 ). Vector v1 with elements satisfying greater6 removed is ( 4 0 5 1 6 3 2 1 6 9 3 7 8 2 ). Vector v1 resized elements satisfying greater6 removed is ( 4 0 5 1 6 3 2 ). 示例 3让我们看另一个简单示例 输出 Vector : China India Korea America Australia Pakistan Vector : China India Korea Pakistan 示例 4让我们看另一个简单的例子,通过将所有非空格字符左移然后擦除多余的空格来删除字符串中的所有空格。 输出 Textwithsomespaces Textwithsomewhitespaces 下一主题C++ 算法 |
C++ 算法函数 all_of() C++ 算法 all_of() 函数在 'pred' 参数的值为 true 时返回 true。该值对于范围 [first, last] 中的所有元素都应为 true。语法模板 <class InputIterator, class UnaryPredicate> bool all_of (InputIterator first, InputIterator last, UnaryPredicate pred); 参数 first: 它指定了...
阅读1分钟
C++ 算法 merge() C++ 算法 merge() 函数用于将两个已排序的范围 [first1, last1) 和 [first2, last2) 合并成一个从 result 开始的已排序范围。第一个版本使用运算符 < 比较元素,第二个版本使用给定的二进制比较函数 comp 比较元素...
阅读 6 分钟
C++ 算法 transform() C++ 算法 transform() 函数以两种不同的方式使用: 1. 一元操作:- 此方法对范围 [first1, last1] 中的元素执行一元操作 op,并将结果存储在从 result 开始的范围中。此 transform() 将函数应用于范围的每个元素: 2. 二元...
5 分钟阅读
C++ 算法 stable_sort() C++ 算法 stable_sort() 函数用于将范围 [first, last) 中的元素按升序排序,与 sort 类似,但保持等效元素的顺序。第一个版本使用运算符 < 比较元素,第二个版本使用 comp 比较元素。语法模板 <class...
阅读 6 分钟
C++ 算法函数 mismatch() C++ 算法 mismatch() 函数比较两个容器以发现任何值不匹配。该函数返回两个容器中不匹配的第一个元素。语法模板<class InputIterator1, classInputIterator2> pair<InputIterator1, InputIterator2> mismatch(InputIterator1 first1, InputIterator2 first2> template<class InputIterator1, class InputIterator2, class BinaryPredicate> pair<InputIterator1,InputIterator2> mismatch(InputIterator1 first1,...
阅读 3 分钟
C++ 算法 fill() C++ Algorithm fill() 函数用于使用 operator= 将指定范围 [first, end) 中的所有元素赋值为相同的新值。注意:范围 [first, last) 表示 first 包含在范围内,但 last 不包含。语法模板 <class ForwardIterator, class T> void...
阅读 4 分钟
C++ 算法 lower_bound() C++ 算法 lower_bound() 函数是二分搜索的一个版本。此函数用于返回一个迭代器,指向有序范围 [first, last) 中第一个不小于(即大于或等于)指定值的元素...
阅读 4 分钟
C++ 算法 equal_range() C++ 算法 equal_range() 函数是二分搜索的一个版本。此函数用于返回子范围的下限和上限,该子范围包含范围 [first, last) 中所有与 val 等效的元素。其中子范围定义为...
7 分钟阅读
C++ 算法 random_shuffle() C++ Algorithm random_shuffle() 通过将范围的元素随机放置来重新排序。第一个版本使用内部随机数生成器,第二个版本使用随机数生成器,这是一种特殊类型的函数对象,显式地...
阅读 4 分钟
C++ 算法 remove_copy() C++ 算法 remove_copy() 函数用于将所有不等于 val 的元素从范围 [first, last) 复制到提供的 result,而不改变剩余元素的顺序。此函数不能改变容器的大小。它返回一个迭代器...
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India