使用std::transform将一个范围的元素添加到另一个范围中
using std::transform to add elements of one range to another in place
在c++中,如果您有以下代码来添加两个范围(numbers1和numbers2(中的元素,您将如何修改它,使结果存储在numbers2中而不是结果中?
vector<int> numbers1 = {1, 5, 42, 7, 8};
vector<int> numbers2 = {10, 7, 4, 2, 2};
vector<int> results;
std::transform(numbers1.begin(), numbers1.end(),
numbers2.begin(),
std::back_inserter(results),
[](int i, int j) {return i+j;});
只需将第三个参数设置为输出范围的begin
:
std::transform(numbers1.begin(), numbers1.end(),
numbers2.begin(),
numbers2.begin(), // output range
[](int i, int j) {return i+j;});
对输出范围的要求是,它必须与第一个输入范围一样大,在这种情况下为numbers1
。
相关文章:
- 使用std::transform将一个范围的元素添加到另一个范围中
- 基于范围的 for 循环:迭代使用一个元素扩展的向量
- C++基于范围的 for 循环和元素副本
- 如果变量数据包含大于 vector 所有元素的整数,则仅在视觉工作室上接收"矢量下标超出范围"?
- 如何读/写或遍历 std::array 中的特定元素范围?
- 基于相邻元素 c++ 的分段误差范围的循环
- 是否存在一个范围::视图::group_by对应项,它将所有元素都考虑在内,而不是只考虑连续的元素
- 对于多个查询,查找在 l 到 r 范围内具有相同元素的最长公共子数组
- 我应该如何使用remove_if删除两个数字范围内的元素
- 从给定范围内的向量中查找最大元素
- 忽略元素的基于范围的 for 循环
- 包含每个 k 个列表中至少 1 个元素的最小元素范围的时间复杂度
- 矢量擦除范围内的元素
- 为什么基于范围的循环不修改容器元素?
- 删除重复的元素并给出一个范围总和
- 检查范围的元素是否可以移动?
- 使用对范围中的矢量元素的引用
- 使用其范围版本从容器中删除元素的最佳方法
- 删除矢量中的范围元素(C++)
- 选择OpenGL范围元素GL_ELEMENT_ARRAY_BUFFER