Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Mengendalikan std::arrays of Variable Size in Functions: A straightforward approach?

Bagaimana Mengendalikan std::arrays of Variable Size in Functions: A straightforward approach?

Barbara Streisand
Barbara Streisandasal
2024-10-24 13:05:02860semak imbas

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

Melalui std::array Saiz Tidak Diketahui kepada Fungsi

Masalah:

Bagaimana untuk mencipta fungsi yang beroperasi pada std::array jenis yang diketahui tetapi saiz berubah?

Contoh:

<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>

Soalan :

Adakah terdapat pendekatan mudah untuk membuat ini berfungsi, serupa dengan tatasusunan gaya C?

Jawapan:

Malangnya, tidak. Melepasi std::arrays saiz yang tidak diketahui memerlukan menggunakan templat fungsi atau bekas alternatif seperti std::vectors.

Penyelesaian Templat:

<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>

Contoh Langsung: https://godbolt.org/z/T1d1n3vrM

Atas ialah kandungan terperinci Bagaimana Mengendalikan std::arrays of Variable Size in Functions: A straightforward approach?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn