通过std :: vector作为const float *

Pass std::vector as const float *?

本文关键字:float const vector std 通过 作为      更新时间:2023-10-16

我的功能是:

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());