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

时间:2011-11-25 01:04:02

标签: c++ string vector copy

  

可能重复:
  Converting std::string to std::vector<char>

我试过了:

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

但它不起作用=(所以我想知道如何将std::string复制到std::vector<char>std::vector<uchar>

2 个答案:

答案 0 :(得分:119)

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));

答案 1 :(得分:8)

您需要一个后插件才能复制到矢量中:

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