我最近在c ++中遇到了关键字auto。
在代码中:
auto maxIterator = std::max_element(&spec[0], &spec[sampleSize]);
float maxVol = *maxIterator;
// Normalize
if (maxVol != 0)
std::transform(&spec[0], &spec[sampleSize], &spec[0], [maxVol] (float dB) -> float { return dB / maxVol; });
这与在音频流上运行频率分析有关。 来自网站:http://katyscode.wordpress.com/2013/01/16/cutting-your-teeth-on-fmod-part-4-frequency-analysis-graphic-equalizer-beat-detection-and-bpm-estimation/
我搜索了论坛,但它说该关键字没用。有人可以在这里解释它的使用。
我对c ++很新,所以请尽量不要让答案太复杂。 非常感谢。
自动使maxIterator成为指针吗?
答案 0 :(得分:2)
编译器猜测maxIterator
的类型。如果spec
的类型为float []
,则maxIterator
类型为float *
。
答案 1 :(得分:2)
在C ++ 11中,关键字auto
从其初始化表达式中推断出声明变量的类型。因此,在您的代码中,它会推导出maxIterator
的类型。
有关auto
外观here