gpt4 book ai didi

C++ - 传入一个 vector 并返回一个 vector

转载 作者:搜寻专家 更新时间:2023-10-30 23:58:47 25 4
gpt4 key购买 nike

很抱歉这个菜鸟问题,但是举例来说,我已经有一个用 C++ 编写的 Excel 加载项,它接受一个数字并返回数字的平方(比如 inputNum 和 outputNum,其中 outputNum = inputNum^2)和现在我需要修改函数,使输入是一个 1xn vector ,输出是一个大小相同且数字平方的 vector ,我需要修改什么才能让它工作?举例来说,我是否需要将输入更改为指针,因为 C++ 不会直接将 vector 作为 native 类型(与原始 square 函数中的 double 不同)。

谢谢!

最佳答案

std::transform函数是执行此操作的好方法:

#include <vector>
#include <algorithm>
#include <iostream>

double processElement(double e) {
return e * e;
}

std::vector<double> processAllElements(const std::vector<double>& in) {
// The output vector must be constructed to be the same size as the input.
std::vector<double> out(in.size(), 0);

// Process each element in the input vector into the output vector.
// (input is unchanged)
std::transform(in.begin(), in.end(), out.begin(), &processElement);
return out;
}

int main() {
std::vector<double> in;
in.push_back(1);
in.push_back(2);

std::vector<double> out = processAllElements(in);

std::cout << out[0] << "," << out[1];
}

如果您正在处理指向值缓冲区的原始指针,您仍然可以使用 std::transform

int main() {
const int n = 3;
double in[] = {1,2,3};
double out[n];

std::transform(in, in+n, out, &processElement);

std::cout << out[0] << "," << out[1];
}

但是如果在编译时不知道你的 vector 大小,你最好使用 std::vector 来为你管理内存。

关于C++ - 传入一个 vector 并返回一个 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18933791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com