天天看點

C++11的一些有用的特性

​<code>​auto​</code>​ 會自動幫你比對類型,不過定義變量的時候要初始化一個值。

可以用來簡化需要寫疊代器的 ​<code>​for​</code>​

​<code>​for​</code>​ 也有了新寫法

這個東西是“常量表達式” 的意思。

你可以把它看作一個更新版的 ​<code>​const​</code>​ 。

所謂常量表達式,指的就是由多個(\(\ge 1\))常量組成的表達式。

如果表達式中的成員都是常量,那麼該表達式就是一個常量表達式。

并且常量表達式一旦确定,其值将無法修改。

簡單來說,他會在編譯的時候直接幫你計算出這個常量表達式的值。

執行個體:

有什麼用呢?

我們在取模的時候使用 ​<code>​constexpr​</code>​,可以加速取模的過程。

實測效果:

部分引用自:​​Link​​

可以當作一個小型函數?

寫法是: ​<code>​_Type _Name[_Capture](_Params)_Opt-&gt;_Ret{_Body}​</code>​

分别是:

類型,名字,捕獲清單,參數表,函數選項,函數傳回值,函數體。

捕獲清單有這幾種(部分常用):

<code>[]</code> 不捕獲任何變量。

<code>[&amp;]</code> 捕獲外部作用域中所有變量,并作為引用在函數體中使用(按引用捕獲)。

<code>[=]</code> 捕獲外部作用域中所有變量,并作為副本在函數體中使用(按值捕獲)。

<code>[=,&amp;foo]</code> 按值捕獲外部作用域中所有變量,并按引用捕獲變量 <code>foo</code>。

幾個執行個體:

 ​