首頁 > 後端開發 > C++ > 如何處理 C 函式中不同大小的 std::Arrays?

如何處理 C 函式中不同大小的 std::Arrays?

Mary-Kate Olsen
發布: 2024-10-24 14:46:01
原創
900 人瀏覽過

How to Handle std::Arrays of Varying Sizes in C   Functions?

將未知大小的std::array 傳遞給函數

問題:

如何

問題:
<code class="cpp">// Hypothetical function
void mulArray(std::array<int, ?>& arr, const int multiplier) {
    for (auto& e : arr) {
        e *= multiplier;
    }
}</code>
登入後複製

如何
<code class="cpp">std::array<int, 17> arr1;
std::array<int, 6>  arr2;
std::array<int, 95> arr3;</code>
登入後複製
問題:

如何

問題:

如何問題:

<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>
登入後複製
如何

問題:

如何問題:

<code class="cpp">// Array of size 17
std::array<int, 17> arr1;

// Function call with template instantiation for size 17
mulArray(arr1, 3);</code>
登入後複製

如何問題:

如何問編寫函數來處理已知類型但大小不同的std::arrays?例如,考慮以下範例:如何定義諸如mulArray 這樣的函數來容納不同大小的數組,如下所示:答案: 不幸的是,如果不使用函數模板或使用不同的容器類型(例如std::vector),就不可能編寫接受未知大小的std::array 的函數。 函數模板:在此範例中,mulArray 函數被定義為函數模板,允許其處理任何大小的陣列。 SIZE 參數指定編譯時陣列的大小。 用法範例:注意: 使用函數模板時,函數定義必須放在頭檔中才能在編譯期間存取。

以上是如何處理 C 函式中不同大小的 std::Arrays?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板