Как можно Я обращаюсь к локальным переменным изнутри анонимной функции C ++ 11?

Я выполняю простую нормализацию вектора (веса), пытаясь использовать алгоритмы STL, чтобы сделать код как можно более чистым ( Я понимаю, что с циклами for это довольно тривиально):

float tot = std::accumulate(weights.begin(), weights.end(), 0.0);
std::transform(weights.begin(), weights.end(), [](float x)->float{return(x/tot);});

В настоящее время tot не видна анонимной функции, поэтому она не компилируется. Как лучше всего сделать локальную переменную видимой для анонимной функции?

29
задан bd1 18 August 2011 в 00:10
поделиться