根据这个关于原始数组与 std::vector的问题的公认答案,原始数组的优点(早在 2010 年)是:
- 数组稍微紧凑一些:大小是隐式的
- 数组是不可调整大小的;有时这是可取的
- 数组不需要解析额外的 STL 头文件(编译时)
- 使用数组与直接 C 代码交互会更容易(例如,如果 C 正在分配并且 C++ 正在使用)
- 固定大小的数组可以直接嵌入到结构或对象中,这可以提高内存局部性并减少所需的堆分配数量
据我所知, std::array 解决了除第三点之外的所有问题。
所以除非我迫切需要改进我的编译时间,有没有理由在 C++11 中使用原始数组而不是 std::array ?