在 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# [关闭]的主要内容,如果未能解决你的问题,请参考以下文章