перевести лямбда-выражение c # в переполнение стека

Я должен нормализовать список значений в диапазоне [-1; 1].
Я нашел этот код в 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);

-9

Решение

Код…

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

… может быть переписан (в C #) без лямбда-выражений, как так …

IEnumerable<double> normalized = new List<double>();
for (var elem in list)
{
normalized.Add(((scaleRange * (elem - valueMin)) / valueRange) + scaleMin);
}

Вы должны быть в состоянии перевести этот алгоритм на любой язык, который вам нужен.

3

Другие решения

Других решений пока нет …