auto c ++关键字有什么作用?

时间:2014-01-20 04:45:53

标签: c++ auto fmod

我最近在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成为指针吗?

2 个答案:

答案 0 :(得分:2)

编译器猜测maxIterator的类型。如果spec的类型为float [],则maxIterator类型为float *

答案 1 :(得分:2)

在C ++ 11中,关键字auto从其初始化表达式中推断出声明变量的类型。因此,在您的代码中,它会推导出maxIterator的类型。

有关auto外观here

的详情,请参阅