web-dev-qa-db-ja.com

std :: array <char、N>からstd :: string

std::array<char, N>からstd::stringに変換する最良の方法は何ですか?

テンプレートメソッドを作成しようとしましたが、うまくいきませんでした。私のC++スキルは、まったく問題がないと思います。 C++でこれを行う慣用的な方法はありますか?

23
Jonathan Evans

「最善の方法」とは言いませんが、方法std::stringの-​​ イテレータコンストラクタ を使用することです。 =:

std::array<char, 10> arr;
... // fill in arr
std::string str(std::begin(arr), std::end(arr));
41
Robᵩ

配列にnullで終了する文字列がある場合は、次のようにします。

std::array<char, 4> arr = {'a','b','c',0};
std::string str(arr.data());
16
David L.