STL矢量数据提取

Pra*_*van 1 c++ stl vector

我有一个std::vector<char>大小约为1500.但是,当我尝试使用vector::data将数据提取到字符串时,它不起作用.

std::vector<char> testVector;
//insert data to test vector
std::string temp = testVector.data();
Run Code Online (Sandbox Code Playgroud)

当我temp在此之后打印时,它只是打印DATA.当我将datain 的大小减小vector到100-200时,它正常工作并且符合预期.但是当尺寸增加时,它就会停止工作.我尝试使用string::reserve,仍然没有.

我错过了什么?

int*_*jay 7

char*字符串分配给字符串需要以空字符结尾的字符串.

要将(非空终止)复制vector<char>到a中string,请使用:

std::string temp(testVector.data(), testVector.size());
Run Code Online (Sandbox Code Playgroud)

或者(这更加惯用,因为它可以与任何容器一起使用):

std::string temp(testVector.begin(), testVector.end());
Run Code Online (Sandbox Code Playgroud)