ホームページ > バックエンド開発 > C++ > 関数内で可変サイズの std::array を処理する方法: 簡単なアプローチ?

関数内で可変サイズの std::array を処理する方法: 簡単なアプローチ?

Barbara Streisand
リリース: 2024-10-24 13:05:02
オリジナル
944 人が閲覧しました

How to Handle std::arrays of Variable Size in Functions: A Straightforward Approach?

サイズが不明な std::array を関数に渡す

問題:

既知の型で可変サイズの std::array を操作する関数を作成するにはどうすればよいですか?

例:

<code class="cpp">// hypothetical example
void mulArray(std::array<int, ?>& arr, const int multiplier) {
    for(auto& e : arr) {
        e *= multiplier;
    }
}</code>
ログイン後にコピー
<code class="cpp">// imaginary arrays with values
std::array<int, 17> arr1;
std::array<int, 6> arr2;
std::array<int, 95> arr3;

mulArray(arr1, 3);
mulArray(arr2, 5);
mulArray(arr3, 2);</code>
ログイン後にコピー

質問:

C スタイルの配列と同様に、これを機能させる簡単なアプローチはありますか?

答え:

残念ながら、いいえ。 サイズが不明な std::array を渡すには、関数テンプレートまたは std::vectors などの代替コンテナを使用する必要があります。

テンプレート ソリューション:

<code class="cpp">template<std::size_t SIZE>
void mulArray(std::array<int, SIZE>& arr, const int multiplier) {
    for(auto& e : arr) {
        e *= multiplier;
    }
}</code>
ログイン後にコピー

実際の例: https://godbolt.org/z/T1d1n3vrM

以上が関数内で可変サイズの std::array を処理する方法: 簡単なアプローチ?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート