0
我知道向量保證與數組具有相同的底層內存佈局。因此對於int
等POD(普通舊數據)類型,當a
非空時,vector<int> a
可用作SomeCFun(&a[0], a.size())
。我想知道,當元素類型是(複雜)類類型時,該技巧是否仍然安全工作?關於使用std :: vector <class type Foo>作爲原始數組Foo []
我知道向量保證與數組具有相同的底層內存佈局。因此對於int
等POD(普通舊數據)類型,當a
非空時,vector<int> a
可用作SomeCFun(&a[0], a.size())
。我想知道,當元素類型是(複雜)類類型時,該技巧是否仍然安全工作?關於使用std :: vector <class type Foo>作爲原始數組Foo []
是的,它會工作。另一種方法是SomeCFun(a.data(), a.size())
- 但無論你喜歡什麼。
是的,它保證是任何類型T
。
該類型對數組的佈局或C樣式數組(或向量)的行爲沒有影響。 – Xeo 2012-07-20 02:18:03
請注意標題有點偏離。您不能將'vector'的內容作爲'T'的數組使用。你可以做的是獲得一個指向'T'的指針。 –
2012-07-20 04:19:09