最近多唸了点东西,回来补充心得:
某MOOC建议用std::array(C++11新增)取代传统C array的原因有:
(该MOOC是法文,如果我解读有错请小力鞭)
- 传统C array只能以reference的方式跟函式传递值(不管有无加&)
(就是板上所谓的"退化"?)会造成阅读困难
- 传统C array没办法直接知道array大小
- 传统C array没法用 = (ex: tab1 = tab2)
- 传统C array无法当作结果被函式传回
- 传统C array有跟别种type不同的宣告方式(不能用({1, 2, 3}))
该MOOC结论:传统C array没有好处,能用vector就用vector,
如果array size不会变就用std::array
※ 引述《wtchen (没有存在感的人)》之铭言:
: 问题(Question):
: 在coursera看到有人用std::array去宣告array
: http://www.cplusplus.com/reference/array/array/
: 可是array不是用一般方式宣告就好了吗?
: 例如说 int foo [5] = { 16, 2, 77, 40, 12071 };
: 多include 一个array标头再宣告成
: std::array<int,5> foo = { 16, 2, 77, 40, 12071 };
: 不是比较麻烦吗?
: 我想问的是用std:array宣告array有啥特别的优点呢?
: 谢谢。