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

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

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-24 14:46:01800瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn