标签: c++ stl
我知道向量可以保证与数组具有相同的底层内存布局。因此对于像int这样的POD(普通旧数据)类型,当vector<int> a非空时,SomeCFun(&a[0], a.size())可用作a。我想知道当元素类型是(复杂的)类型时,技巧是否仍能安全地工作?
int
vector<int> a
SomeCFun(&a[0], a.size())
a
答案 0 :(得分:1)
是的,对于任何类型T,保证是正确的。
T
答案 1 :(得分:0)
是的,它会起作用。另一种选择是SomeCFun(a.data(), a.size()) - 但不管您喜欢什么。
SomeCFun(a.data(), a.size())