我如何提供一个带载矢量参数的重载?

Aba*_*oub 1 c++ vector

我如何提供一个带载矢量参数的重载?

void res(uint8_t* buffer, int len)
{
std::vector<uint8_t> buf( buffer, buffer + len ); 
// here i want to pass buf as uint8_t* to onther func
pack((uint8_t*)buf, len));// error 
}

IntelliSense: no suitable conversion function from "std::vector<uint8_t, std::allocator<uint8_t>>" to "uint8_t *" 
Run Code Online (Sandbox Code Playgroud)

Nik*_*nić 9

传递第一个元素的地址.

pack(&buf[0], len);
Run Code Online (Sandbox Code Playgroud)

  • @MixedCoder:据我所知(我不能引用当前C++标准中的任何位置),这是有保证的.否则你的标准库不是,标准的......除此之外:它是关于向量的全部内容.它们应该是C类数组的替代品. (2认同)