行业知识
C++ 补充之常用拷贝和替换算法
2026-11-12 00:49:52
来源:互联网转载
C++ 常用的拷贝和替换算法
在C++��,常用的拷贝和替换算法包括以下几种:
-
std::copy:这个算法用于将指定范围内的元素复制到另一个容器中。它需要源容器的起始和结束迭代器以及目标容器的插入位置作为参数。
-
std::copy_n:与std::copy类似,但是可以指定要复制的元素数量,而不是源容器的结束迭代器。
-
std::copy_if:在复制元素时,可以提供一个谓词函数,只有满足谓词条件的元素才会被复制。
-
std::replace:这个算法用于将指定范围内的元素替换为另一个元素。它需要源容器的起始和结束迭代器以及要替换的旧值和新值作为参数。
-
std::replace_if:与std::replace类似,但是可以提供一个谓词函数,只有满足谓词条件的元素才会被替换。
这些算法都是通过迭代器来操作容器中的元素,并且它们都属于C++标准库的头文件之中。它们提供了一种方便、高效的方式来执行常见的拷贝和替换操作。
C++ 常用的拷贝和替换算法 copy
概念:
std::copy算法用于将指定范围内的元素从源容器复制到另一个容器中。源容器的起始和结束迭代器指定要复制的范围,目标容器的插入位置确定复制后的位置。可以用于不同类型的容器之间的复制。
原理:
std::copy算法的原理是通过源容器的迭代器遍历指定范围内的元素,然后将每个元素依次插入到目标容器的指定位置。它实际上是调用目标容器的插入函数来完成复制操作。
举例:
#include #include #include int main() { std::vector source = {1, 2, 3, 4, 5}; std::vector target; // 在target中插入source中的元素 std::copy(source.begin(), source.end(), std::back_inserter(target)); // 打印复制后的元素 std::cout std::cout std::vector1, 2, 3, 4, 5, 2, 6, 7}; // 将所有值为2的元素替换为10 std::replace(numbers.begin(), numbers.end(), 2, 10); // 打印替换后的元素 std::cout std::cout return num % 2 != 0;}int main() { std::vector1, 2, 3, 4, 5, 6, 7, 8}; // 将所有奇数替换为0 std::replace_if(numbers.begin(), numbers.end(), isOdd, 0); // 打印替换后的元素 std::cout std::cout int a = 5; int b = 10; // 交换两个整数 std::swap(a, b); std::cout 1, 2, 3}; std::vector4, 5, 6}; // 交换两个向量 std::swap(vec1, vec2); std::cout std::cout