C++ Algorithm unique_copy()2024年8月30日 | 阅读4分钟 C++ 算法 unique_copy() 函数用于复制序列,使得每个重复的连续元素都变成一个唯一的元素。
语法参数first:指向要复制的范围中第一个元素位置的前向迭代器。 last:指向要复制的范围中最后一个元素之后一个位置的前向迭代器。 pred:用户定义的谓词函数对象,它定义了如果范围中的两个元素被认为是等效时应满足的条件。二元谓词接受两个参数,并在满足条件时返回 true,不满足时返回 false。 result:指向复制范围中第一个元素位置的输出迭代器,该复制范围将接收已删除连续重复项的副本。 返回值一个迭代器,指向已复制范围 [first, last) 的新末尾,该范围不包含连续重复项。 复杂度复杂度与范围 [first, last) 成线性关系:比较每对连续元素,并对其中一些元素执行赋值操作。 数据竞争访问范围 [first, last) 中的对象,并修改 result 和返回值的范围之间的对象。 异常安全如果 pred、元素比较、元素赋值或迭代器上的操作中的任何一个抛出异常,此函数将抛出异常。 请注意,无效参数会导致未定义行为。 示例 1让我们看一个简单的例子来演示 unique_copy() 的使用,其中元素将通过 operator== 进行比较 输出 Before: 100 100 300 300 300 500 100 300 300 600 600 700 After: 100 300 500 100 300 600 700 在上面的例子中,向量 v 中所有连续重复元素子组都被简化为只剩一个元素并复制到新向量 v1 中。 示例 2让我们看另一个简单的例子来演示 unique_copy() 的使用,其中元素将通过预定义函数进行比较 输出 Before: You arre vvvisiting vvvogie bbogie After: You arre visiting vogie bbogie 示例 3让我们看另一个简单的例子来检查容器是否包含重复元素 输出 v1 contains only unique elements 在上面的例子中,我们首先从向量 v 中删除重复元素,并将结果元素存储到另一个向量 v1 中,然后将 v1 与 v 进行比较,如果两者相同。(这意味着之前的向量 v 只包含唯一元素,并且没有重复元素)。 示例 4让我们看另一个简单的例子来删除给定语句中的所有空格 输出 before: The string with many spaces! after: The string with many spaces! 下一主题C++ 算法 |
C++ 算法函数 for_each() C++ 算法 for_each() 函数将函数 func 应用于从“first”到“last”范围内的所有元素。语法模板 <class InputIterator, class Function> Function for_each (InputIterator first, InputIterator last, Function func); 参数 first: 指定列表中的第一个元素。last: 指定...
阅读 4 分钟
C++ 算法 partition_point() C++ 算法 partition_point() 函数用于返回给定范围中 pred 不为 true 的第一个元素。元素按满足条件的元素排在不满足条件的元素之前的方式排序。语法模板 <class...
5 分钟阅读
C++ 算法 reverse_copy() C++ 算法 reverse_copy() 函数用于将范围 [first, last) 中的元素以相反的顺序复制到从 result 开始的另一个范围。语法模板 <class BidirectionalIterator, class OutputIterator> OutputIterator reverse_copy (BidirectionalIterator first, BidirectionalIterator last, OutputIterator result); 注意:...
阅读 4 分钟
C++ 算法 upper_bound() C++ 算法 upper_bound() 函数是二分查找的一种版本。此函数用于返回一个迭代器,指向范围 [first, last) 中第一个大于指定值 val 的元素。第一个版本使用运算符 < 进行比较...
5 分钟阅读
C++ 算法函数 find_if() C++ Algorithm find_if() 函数返回范围中第一个满足 pred 条件的元素的值,否则返回范围的最后一个元素。语法模板 <class InputIterator, class UnaryPredicate> InputIterator find_if (InputIterator first, InputIterator last, UnaryPredicate pred); 参数 first:它指定...
阅读 2 分钟
C++ 算法函数 move() C++ 算法 move() 函数用于移动元素。它接受三个参数,然后将属于范围 [first,last) 的元素移动到以“result”开头的范围中。语法模板<class InputIterator, class OutputIterator> OutputIterator move(InputIterator first, InputIterator last, OutputIterator result); 参数 first: 它是...
阅读 2 分钟
C++算法shuffle() C++算法shuffle()函数通过使用g作为统一随机数生成器,将范围内的元素重新排序,将它们放置在随机位置。语法模板 <class RandomAccessIterator, class URNG> void shuffle (RandomAccessIterator first, RandomAccessIterator last, URNG&& g); 参数first:指向位置的随机访问迭代器...
阅读 2 分钟
C++ 算法 remove_copy() C++ 算法 remove_copy() 函数用于将所有不等于 val 的元素从范围 [first, last) 复制到提供的 result,而不改变剩余元素的顺序。此函数不能改变容器的大小。它返回一个迭代器...
阅读 4 分钟
C++ 算法 replace_copy() C++ 算法 replace_copy() 函数用于复制范围 [first, last),并将所有 old_value 替换为 new_value。它使用运算符= 进行复制,并使用运算符== 比较元素。此函数检查每个元素...
5 分钟阅读
C++ 算法 swap() 函数 C++ 算法 swap() 函数交换或说互换两个引用容器的值。语法 template<class T> void swap(T& a, T& b); 参数 a: 它是具有某些值的第一个容器。b: 它是具有某些值的另一个容器。返回值 此函数仅交换值...
阅读 2 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India