2012-07-20 22 views
0

我知道向量保证与数组具有相同的底层内存布局。因此对于int等POD(普通旧数据)类型,当a非空时,vector<int> a可用作SomeCFun(&a[0], a.size())。我想知道,当元素类型是(复杂)类类型时,该技巧是否仍然安全工作?关于使用std :: vector <class type Foo>作为原始数组Foo []

+1

该类型对数组的布局或C样式数组(或向量)的行为没有影响。 – Xeo 2012-07-20 02:18:03

+1

请注意标题有点偏离。您不能将'vector '的内容作为'T'的数组使用。你可以做的是获得一个指向'T'的指针。 – 2012-07-20 04:19:09

回答

0

是的,它会工作。另一种方法是SomeCFun(a.data(), a.size()) - 但无论你喜欢什么。

1

是的,它保证是任何类型T

相关问题