C++ Algorithm swap_ranges()2024年8月30日 | 阅读4分钟 C++ Algorithm swap_ranges() 将范围 [first1, last2) 中的元素与从 first2 开始的范围内的元素进行交换。 简而言之,我们可以说 swap_ranges() 交换两个序列的元素,即第一个序列中某个位置的每个元素被第二个序列中相同位置的元素替换,反之亦然。 语法参数first1: 指向要交换元素的第一范围的第一个位置的前向迭代器。 last1: 指向要交换元素的第一范围的最终位置之后一个位置的前向迭代器。 first2: 指向要交换元素的第二范围的第一个位置的前向迭代器。 返回值swap_ranges() 返回一个迭代器,指向要交换元素的第二范围的末尾。 复杂度复杂度在 first 和 last 之间是线性的。对范围内的每个元素执行交换操作。 数据竞争两个范围中的对象都会被修改。 异常安全如果元素赋值或迭代器操作抛出异常,则抛出异常。 示例 1让我们看一个简单的例子,交换两个向量在给定范围内的元素 输出 v1: 4, 5, 6, v2: 1, 2, 3, 7, 8, 在上面的例子中,向量 v1 的元素与向量 v2 从 v1 的起始到结束范围内的元素进行了交换。 示例 2让我们看一个简单的例子来交换两个向量的内容 输出 1 2 3 4 5 5 6 7 8 9 0 1 2 3 4 6 7 8 9 10 在上面的例子中,swap_range() 函数将向量 v 的前五个元素与向量 c 的元素进行了交换。 示例 3让我们看一个简单的例子来交换向量和双端队列的内容 输出 Vector v1 is: ( 0 1 2 3 4 5 ). Deque d1 is: ( 6 6 6 6 6 6 ). After the swap_range vector v1 is: ( 6 6 6 6 6 6 ). After the swap_range deque d1 is: ( 0 1 2 3 4 5 ). 在上面的例子中,向量和双端队列的元素相互交换。 示例 4让我们看另一个简单示例 输出 s1 = Betty Botter bought some butter s2 = But she said the butter was bitter s3 = So she got some better butter s4 = to make the bitter butter better Jumble them up!!! s1 = But she said thught some butter s2 = Betty Botter boe butter was bitter s3 = to make the bit better butter s4 = So she got someter butter better 下一主题C++ 算法 |
C++ 算法 equal_range() C++ 算法 equal_range() 函数是二分搜索的一个版本。此函数用于返回子范围的下限和上限,该子范围包含范围 [first, last) 中所有与 val 等效的元素。其中子范围定义为...
7 分钟阅读
C++ 算法 reverse_copy() C++ 算法 reverse_copy() 函数用于将范围 [first, last) 中的元素以相反的顺序复制到从 result 开始的另一个范围。语法模板 <class BidirectionalIterator, class OutputIterator> OutputIterator reverse_copy (BidirectionalIterator first, BidirectionalIterator last, OutputIterator result); 注意:...
阅读 4 分钟
C++ 算法函数 find_end () C++ 算法 find_end() 函数在容器中搜索模式的最后一次出现,或者说在容器中搜索序列小部分的最后一次出现。它基本上搜索 [first1,last1) 指定的范围以查找序列的出现,该序列...
阅读 2 分钟
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++ 算法 partition() C++ 算法 partition() 函数用于根据其参数中提到的给定谓词(条件)对元素进行分区。如果容器被分区,则此函数返回 true,否则返回 false。语法模板 <class BidirectionalIterator, class UnaryPredicate> BidirectionalIterator partition (BidirectionalIterator first, BidirectionalIterator last, UnaryPredicate...
5 分钟阅读
C++ 算法 unique_copy() C++ 算法 unique_copy() 函数用于复制序列,使得每个连续的重复元素都成为唯一元素。它不会改变原始范围,并将结果复制到另一个容器中。第一个版本使用 operator== 比较元素,第二个版本...
阅读 6 分钟
C++ 算法 merge() C++ 算法 merge() 函数用于将两个已排序的范围 [first1, last1) 和 [first2, last2) 合并成一个从 result 开始的已排序范围。第一个版本使用运算符 < 比较元素,第二个版本使用给定的二进制比较函数 comp 比较元素...
阅读 6 分钟
C++ 算法 max() C++ 算法 max() 函数可以通过以下 3 种方式使用:它比较其参数中传递的两个值,并返回其中较大的一个。如果两者相等,则返回第一个。它还使用二元...比较这两个值。
5 分钟阅读
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++ 算法 generate_n() C++ 算法 generate_n() 函数用于将由函数对象生成的值分配给范围内指定数量的元素,并返回到最后一个分配值位置之后的一个位置。生成器函数由...
阅读 3 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India