將未知大小的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中文網其他相關文章!