我的功能是:
void function(const float *, int sizeOfArray){...}
我的载体是:
std::vector<float> myVector(size, val);
我在文档中读到你可以使用myVector [0]作为标准的c ++静态数组操作。
如何将该向量传递给该函数而无需将值复制到新的动态数组? (我想避免为此使用new / delete)。
是不是......?
function(myVector[0], size);
顺便说一句,我正在使用C ++ 11。
答案 0 :(得分:8)
您可以使用std::vector::data(自C ++ 11开始)获取指向底层数组的指针。
返回指向用作元素存储的基础数组的指针。指针是范围[data(); data()+ size())始终是有效范围,即使容器为空(在这种情况下data()不可解除引用)。
e.g。
function(myVector.data(), myVector.size());
是不是......?
function(myVector[0], size);
myVector[0]
将返回元素(即float&
),而不是地址(即float*
)。在C ++ 11之前,您可以传递&myVector[0]
。
答案 1 :(得分:1)
function(myVector.data(), myVector.size());