如何将char*复制到vector <char>并检索它?

0 c++ stl

我有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)

izo*_*ica 8

我相信填充向量的最简单方法是使用构造函数:

vector<char> temp(RecBuffer, RecBuffer + *packetLength);
Run Code Online (Sandbox Code Playgroud)

至于检索它,使用方法data:

RecBuffer = temp.data();
Run Code Online (Sandbox Code Playgroud)

注意:dataC++11在您不使用新标准进行编译时才可用,请&temp[0]按@juanchopanza的建议使用.

  • 这是迄今为止最好的答案.如果已经构造了向量,请不要忘记`std :: vector :: assign`成员函数 (4认同)