2

根据这个关于原始数组与 std::vector的问题的公认答案,原始数组的优点(早在 2010 年)是:

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

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

所以除非我迫切需要改进我的编译时间,有没有理由在 C++11 中使用原始数组而不是 std::array ?

4

1 回答 1

2

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

char const *messages[] =
{
    "Hi",
    "Bye",
    "foo",
    "bar"
};
于 2015-01-12T00:59:46.747 回答