web-dev-qa-db-ja.com

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>にコピーする方法を疑問に思いますか?

56
myWallJSON

std::vectorには、2つのイテレーターを受け取るコンストラクターがあります。あなたはそれを使うことができます:

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

ベクトルにコピーするには、バックインサーターが必要です。

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