如何在需要数组的方法调用中使用向量?

时间:2012-01-10 16:54:46

标签: c++ directx directx-10

例如,这种方法:

memcpy(pVoid, MyStructArray, sizeof(MyStructArray)); 

这曾经很好,因为我在实例化时调用了这个方法,其中数组是预定义的大小。然而,有必要动态地更改'数组'中的信息,所以我使用的是矢量。向量中的信息是否保证是连续的?

我可以做点什么吗

 memcpy(pVoid, &MyStructVector, sizeof(*MyStructVector) * MyStrucVector.size()); 

2 个答案:

答案 0 :(得分:3)

std::vector中的数据是连续的。但你不能像你一样复制它。但是,你可以这样做:

memcpy(pVoid, &MyStructVector[0], sizeof(MyStructVector[0]) * MyStrucVector.size()); 

答案 1 :(得分:0)

是的std :: vector是连续的。

你应该使用&MyStructVector[0],你期望一个标准的C风格的数组指针