【问题标题】:translate lambda expression c# in c++ [closed]在 c++ 中翻译 lambda 表达式 c# [关闭]
【发布时间】: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);

【问题讨论】:

    标签: c# c++ lambda code-translation


    【解决方案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 - 谢谢!复制和粘贴错误...已修复。
    猜你喜欢
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-27
    相关资源
    最近更新 更多