c++ vector用花括號初始化的原理


c++ vector有個很神奇的初始化方法:

vector<int> a = {1, 2, 3, 4, 5};

這種方法讓我感到很是驚奇,這是什么操作?
我知道初始化數組是這樣寫的,但是vector雖然是類似於數組,但是本身是個類,是要用構造函數初始化的,也不是什么原生數據類型啊,花括號初始化是什么操作?

然后,我就去看了看vector的源碼,模板給我看的好煩,算了,百度去。
百度查了查,發現一篇文章講的比較清晰,主要是用了initializer_list。C++如何實現用大括號初始化vector - 簡書

真是神奇啊,直接在編譯器層面支持了,不過在VS2010和2012上,對這種初始化方法貌似支持效果還不太好,不能用花括號初始化vector。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM