1. ホーム
  2. c++

std::string を std::vector<char> にコピーする方法は?重複

2023-10-21 05:11:30

質問

重複の可能性があります。

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> ?

どのように解決するのですか?

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