如何将 std: : string 复制到 std: : Vector < char > ?

可能的复制品:
将 std: : string 转换为 std: : Vector < char >

我试过:

std::string str = "hello";
std::vector<char> data;
std::copy(str.c_str(), str.c_str()+str.length(), data);

但它不工作 = (所以我想知道如何复制 std::stringstd::vector<char>std::vector<uchar>

118037 次浏览

std::vector有一个接受两个迭代器的构造函数,您可以使用:

std::string str = "hello";
std::vector<char> data(str.begin(), str.end());

如果你已经有了一个向量并且想要在末尾添加字符,你需要一个后插入器:

std::string str = "hello";
std::vector<char> data = /* ... */;
std::copy(str.begin(), str.end(), std::back_inserter(data));

你需要一个后插入器来复制到矢量:

std::copy(str.c_str(), str.c_str()+str.length(), back_inserter(data));