反復なしでデフォルト以外の構成可能な std::array を初期化する
C で、デフォルト以外の構成可能な要素の std::array を初期化する挑戦になる可能性があります。 n (配列サイズ) が大きい場合、またはテンプレート パラメーターの場合、標準の初期化メソッドは面倒になります。
解決策:
洗練されたソリューションでは、反復子とテンプレートの組み合わせを利用します。その仕組みは次のとおりです。
2 つのヘルパー ユーティリティを定義します。
これらのユーティリティを使用すると、std::array を初期化できます。テンプレート関数 f では次のようになります:
<code class="cpp">template<typename T, int N> void f(T value) { std::array<T, N> items = repeat(value, genseq_t<N>{}); }</code>
実装の詳細:
例:
整数として value を使用し、テンプレート パラメーターとして n を使用する初期化を検討します。
<code class="cpp">void f(int value) { std::array<T, 5> items = repeat(value, genseq_t<5>{}); }</code>
ここで、項目は次のようになります。 5 回繰り返される値で初期化されます: {value, value, value, value, value}.
利点:
このアプローチは、特に n が次の場合に、より簡潔です。大きい。また、値を手動で繰り返す必要もなくなります。
以上がC でデフォルト以外の構成可能な `std::array` を繰り返しなしで初期化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。