C++ 11に関する質問があります。私は以下の関数が文字列を逆転させることを知っていますが、{}の構文はわかりません。どんなタイプの構造ですか?私は通常、Javaでコード化します。私はそれが何であるか分かりません。C++の中括弧構文とイテレータ
string reverseString(string str){
return{ str.rbegin(), str.rend() };
}
また、別の質問がありますが、この方法では文字列を反転するのが効率的ですか?逆にすると思いますので、メモリ上で連続している文字列が必要な場合は、文字の位置を変更する必要があります。これは、2つのイテレータ(最初と最後)から新しい文字列を作成する範囲コンストラクタを使用
string reverseString(string str){
return string(str.rbegin(), str.rend());
}
:
構文は「uniform initialization」と呼ばれ、ここでは(暗黙的に)コンストラクタを呼び出します。ここでの複雑さは、文字列のサイズに線形です。 – Arcinde
これは[コピーリストの初期化](http://en.cppreference.com/w/cpp/language/list_initialization)です。構文#8を参照してください* 'return {arg1、arg2、...};' * –
あなたはブラケット記法で 'std :: string'コンストラクタを呼び出しています – RPGillespie