我有char *RecBuffer,int *packetLength指向数据和大小
int i=0;
vector<char> temp;//copy the buffer
while(i<*packetLength)
{
temp.push_back(*(RecBuffer+i));
i++;
}
...do something
//retrieve it now
RecBuffer = temp ????
Run Code Online (Sandbox Code Playgroud)
我相信填充向量的最简单方法是使用构造函数:
vector<char> temp(RecBuffer, RecBuffer + *packetLength);
Run Code Online (Sandbox Code Playgroud)
至于检索它,使用方法data:
RecBuffer = temp.data();
Run Code Online (Sandbox Code Playgroud)
注意:data仅C++11在您不使用新标准进行编译时才可用,请&temp[0]按@juanchopanza的建议使用.