C++11 Features¶
List Initialization¶
vector<int> vec{1, 2, 3, 4, 5};
For-each¶
for(auto element: vec)
cout << element << " ";
cout << endl;
Dynamic type declaration¶
auto a = 3, b = 1;
decltype(a + b) c = a + b;
Replacing typedefs¶
using ll = long long int;
ll ll_var = 30;
Lambda functions¶
sort(vec.begin(), vec.end(),
[](const int& e1, const int& e2) -> bool
{
return e1 < e2;
});
// Other uses
int var1 = 1;
int var2 = 3;
// Copying all context variables
auto f1 = [=]() -> int{
int var3 = var1 + 1;
return var3 + var2;
};
// Copying by reference all context variables
auto f2 = [&]() -> int{
var1++;
var2 += var1;
return var1 + var2;
};
// Mixing copy styles, all by reference, except one by copying
auto f3 = [&, var1]() -> int{
var2 += var1;
return var1 + var2;
};