我的功能是:
void function(const float *, int sizeOfArray){...}
我的向量是:
std::vector<float> myVector(size, val);
我在文档中阅读了您可以将MyVector [0]用作标准C 静态阵列操作。
如何将该向量传递到该函数而无需将值复制到新的动态数组?(我想避免仅为此使用新/删除(。
它像...?
function(myVector[0], size);
我正在使用C 11。
您可以使用std :: vector :: data(自C 11(获取指向基础数组的指针。
将指针返回给基础数组,用作元素存储。指针使得范围[data((;data(( size(((始终是一个有效的范围,即使容器为空(在这种情况下data(Data(Data(Data(Data(((。
,例如
function(myVector.data(), myVector.size());
它像...?
function(myVector[0], size);
myVector[0]
将返回元素(即float&
(,而不是地址(即float*
(。在C 11之前,您可以通过&myVector[0]
。
function(myVector.data(), myVector.size());