2015-01-12 50 views
2

據對this question about raw arrays vs std::vector接受的答案,原始陣列(早在2010年)的優點是:原始數組比std :: array有什麼優勢嗎?

  • 陣列是稍微更緊湊:尺寸是隱含
  • 陣列是不可調整大小;有時這是desireable
  • 陣列不需要解析額外STL頭(編譯時間)
  • 它可以更容易地與直-C代碼交互以與陣列(例如,如果C被分配和C++是使用)
  • 固定大小的數組可被直接嵌入到一個結構或對象,從而能夠提高存儲器局部性和減少所需

據我所知堆分配的數目,標準::陣列解決所有但第三點。

所以,除非我急需改善我的編譯時間,是否有任何理由在C++ 11中使用原始數組通過std ::數組?

+0

不能看到原始陣列的任何優勢,只是反過來(我指的是'std :: array' BTW不是'std :: vector')。 –

+0

原始數組可以自動調整大小。 – Yakk

+0

@Yakk你是什麼意思,「自動大小」? – Barry

回答

0

是的,它不要求你明確指定大小,這使得它更容易被手初始化:

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