在 c++ 中翻译 lambda 表达式 c# [关闭]

Posted

技术标签:

【中文标题】在 c++ 中翻译 lambda 表达式 c# [关闭]【英文标题】:translate lambda expression c# in c++ [closed] 【发布时间】:2012-09-20 13:16:48 【问题描述】:

我必须标准化 [-1;1] 范围内的值列表。 我在 c# 中找到了这段代码,但我不知道这种语言。有人可以帮我用 C++ 翻译这个吗?

List<int> list = new List<int>-5,-4,-3,-2,-1,0,1,2,3,4,5;
double scaleMin = -1; //the normalized minimum desired
double scaleMax = 1; //the normalized maximum desired

double valueMax = list.Max();
double valueMin = list.Min();
double valueRange = valueMax - valueMin;
double scaleRange = scaleMax - scaleMin;

IEnumerable<double> normalized = 
list.Select (i =>
    ((scaleRange * (i - valueMin))
        / valueRange)
    + scaleMin);

【问题讨论】:

【参考方案1】:

代码...

IEnumerable<double> normalized = list.Select (i => ((scaleRange * (i - valueMin)) / valueRange) + scaleMin);

...可以重写(在 C# 中)而无需像这样的 lambda 表达式...

IEnumerable<double> normalized = new List<double>();
for (var elem in list)

    normalized.Add(((scaleRange * (elem - valueMin)) / valueRange) + scaleMin);

您应该能够将该算法翻译成您需要的任何语言。

【讨论】:

@ebyrob - 谢谢!复制和粘贴错误...已修复。

以上是关于在 c++ 中翻译 lambda 表达式 c# [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

解析和翻译 Java 8 lambda 表达式

聊聊 C++ 和 C# 中的 lambda 玩法

C++ lambda表达式(函数指针和function)

lambda表达式来自哪里?

贯穿 C++ 11 与 C++ 17 的 Lambda 到底是个什么?

C# 表达式树的重要意义