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