Vector 复制标准::向量<;uint8_t>;烧焦*
我有两个变量定义为Vector 复制标准::向量<;uint8_t>;烧焦*,vector,char,copy,Vector,Char,Copy,我有两个变量定义为 std::vector<uint8_t> var; char* test; std::vector-var; 字符*测试; 我试过使用reinterpret_cast。但它不起作用。有没有像“strcpy”这样的复制或类型转换方法 我想把'var'复制到'test'。 我该怎么做呢?假设您在内存中分配了足够的字符来保存向量中存储的内容。您可以像这样使用std::copy: #include <vector> #include <cstdin
std::vector<uint8_t> var;
char* test;
std::vector-var;
字符*测试;
我试过使用reinterpret_cast。但它不起作用。有没有像“strcpy”
这样的复制或类型转换方法
我想把'var'
复制到'test'
。
我该怎么做呢?假设您在内存中分配了足够的字符来保存向量中存储的内容。您可以像这样使用
std::copy
:
#include <vector>
#include <cstdint>
int main(int agrc, char** argv){
std::vector<std::uint8_t> var;
//fill "var" here somehow
char* test = new char[var.size()];//init this with the correct size
std::copy(var.begin(),var.end(),test);
delete [] test;
return 0;
}
#包括
#包括
int main(int agrc,字符**argv){
std::向量var;
//在这里填入“var”
char*test=new char[var.size()];//使用正确的大小初始化它
std::copy(变量begin(),变量end(),test);
删除[]测试;
返回0;
}
请记住,如果您没有为test
分配至少var.size()
元素,则此操作将失败。此外,如果test
是c字符串,则需要分配var.size()+1
元素,并在test
的最后一个元素中插入\0
,前提是var
尚未以null结尾