私は試した:
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>
にコピーする方法を疑問に思いますか?
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));
ベクトルにコピーするには、バックインサーターが必要です。
std::copy(str.c_str(), str.c_str()+str.length(), back_inserter(data));