vs2012以上版本支援
一. auto的使用:
auto func = less();
//自動表示函式指標
auto ite = vector_a.begin();
//自動表示stl的迭代器
auto p = new foo();
//自動表示變數指標等變數
二. decltype
int x = 3;
decltype(x) y = x;
//從變數或表示式中獲得型別
三. nullptr區別於null
nullptr是為了解決原來c++中null的二義性問題而引進的一種新的型別,因為null實際上代表的是0
int a = nullptr; // 編譯失敗,nullptr不能轉型為int
四. 簡化的for迴圈,
mapm, , };
for (auto p : m);
int a = 2, b = 1;
for_each(iv.begin(), iv.end(), [b](int &x));
//[=]使用所有外部變數
for_each(iv.begin(), iv.end(), [=](int &x)->int);
//->int返回值是int
auto pos = find_if(iv.begin(), iv.end(), (int &n)->bool);
auto is_odd = (int n) ;
auto pos1 = find_if(iv.begin(), iv.end(), is_odd);
六. 類成員函式覆蓋override, final
class a
};class b : public a
// error c3248: 'a::g': function declared as 'final' cannot be overridden by 'b::g'
virtual void g(int)
};七. 更好的定義列舉形式
enum class options ;
options o = options::all;
八. 智慧型指標
unique_ptr:不能拷貝, 只能move
auto_ptr: 廢棄
九. 編譯時斷言
static_assert(size < 3, "size is too small");
static_assert(std::is_integral::value, "type t1 must be integral");
十. 記憶體轉移
std::unique_ptrp2 = std::move(p1);
C 11 實用新特性總結
template classt1,class t2 auto add t1x,t2 y decltype x y 只使用一次的函式物件,能否不要專門為其編寫乙個類?只呼叫一次的簡單函式,能否在呼叫時才寫出其函式體?形式 外部變數訪問方式說明符 參數列 返回值型別語句組 外部變數訪問方式說明符形式 可...
C 11新特性總結 二
c 11 引入了一種更為簡單的for語句,這種for語句可以很方便的遍歷容器或其他序列的所有元素 vectorvec for int x vec 如果要定義指向這個陣列的指標呢 int p arr 10 arr 注意 int p arr 10 表示乙個陣列,有10個元素,元素型別是int 如果要定義...
C 11新特性學習
lambda表示式用於建立匿名的函式物件,語法為 函式可訪問的的外部變數 函式引數 返回值型別 如 int a 1,b 2 int c b int x int b 表示函式中可以訪問外部變數b,而且引數b是按值傳遞,b 表示引數b是按引用傳遞,表示可以訪問所有外部變數,並且是用按值傳遞方式,類似,也...