原始数组是否比std :: array有任何优势?

时间:2015-01-12 00:13:29

标签: c++ arrays c++11 stl stdarray

根据this question about raw arrays vs std::vector上接受的答案,原始阵列的优势(早在2010年)是:

  
      
  • 数组稍微紧凑:大小是隐式的
  •   
  • 数组不可调整大小;有时这是可取的
  •   
  • 数组不需要解析额外的STL头(编译时)
  •   
  • 使用数组与直接C代码交互更容易(例如,如果C正在分配而C ++正在使用)
  •   
  • 固定大小的数组可以直接嵌入到结构或对象中,这可以改善内存局部性并减少所需的堆分配数
  •   

据我所知,除了第三点之外,std :: array只能解决所有问题。

因此,除非我迫切需要改进编译时间,否则是否有理由在C ++ 11中的std :: array上使用原始数组?

1 个答案:

答案 0 :(得分:1)

是的,它不需要您明确指定大小,这样可以更容易手动初始化它:

char const *messages[] =
{
    "Hi",
    "Bye",
    "foo",
    "bar"
};