根据this question about raw arrays vs std::vector上接受的答案,原始阵列的优势(早在2010年)是:
- 数组稍微紧凑:大小是隐式的
- 数组不可调整大小;有时这是可取的
- 数组不需要解析额外的STL头(编译时)
- 使用数组与直接C代码交互更容易(例如,如果C正在分配而C ++正在使用)
- 固定大小的数组可以直接嵌入到结构或对象中,这可以改善内存局部性并减少所需的堆分配数
据我所知,除了第三点之外,std :: array只能解决所有问题。
因此,除非我迫切需要改进编译时间,否则是否有理由在C ++ 11中的std :: array上使用原始数组?
答案 0 :(得分:1)
是的,它不需要您明确指定大小,这样可以更容易手动初始化它:
char const *messages[] =
{
"Hi",
"Bye",
"foo",
"bar"
};