gpt4 book ai didi

c++ - 插入 vector 时使用 lambda 的返回值而不是函数的返回值有意义吗?

转载 作者:太空宇宙 更新时间:2023-11-04 12:58:34 26 4
gpt4 key购买 nike

我正在尝试使用 lambda 进行频繁出现的 vector 插入,以防止调用等效函数:

std::vector<vector<double>> A

// There are several loops like this with different conditions
for(auto i(0); i<100; ++i)
A.push_back(myFunction(
lots,
of,
parameters,
including,
index,
and,
condition
));

与此相比,lambda 似乎相当优雅:

auto myLambda = [&](size_t loopIndex, double condition) -> vector<double> {
//body identical to that of myFunction
}

for(auto i(0); i<100; ++i)
A.push_back(myLambda(i, 3.141))

for(auto i(0); i<100; ++i)
A.push_back(myLambda(i, 42))

someFunction 的返回和主体与 lambda 的相同。

这种方法有什么缺点吗?与函数相比,lambda 的参数数量减少表明在移交数据时需要做的工作更少;实际上是这样吗,或者捕获是否相当于等量的工作,我们只是获得了更好的可读性?

最佳答案

我认为这非常可读,不是吗?

#include <vector>
std::vector<std::vector<double>> A;

void test()
{
// lots of logic here

auto compute = [&]() -> std::vector<double> {
// compute logic here
};

A.push_back(compute());
}

关于c++ - 插入 vector 时使用 lambda 的返回值而不是函数的返回值有意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45400493/

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