Heim > Backend-Entwicklung > C++ > Wie gehe ich mit std::arrays variabler Größe in Funktionen um: Ein einfacher Ansatz?

Wie gehe ich mit std::arrays variabler Größe in Funktionen um: Ein einfacher Ansatz?

Barbara Streisand
Freigeben: 2024-10-24 13:05:02
Original
944 Leute haben es durchsucht

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

Übergabe eines std::array unbekannter Größe an eine Funktion

Problem:

Wie erstelle ich eine Funktion, die mit einem std::array bekannten Typs, aber variabler Größe arbeitet?

Beispiel:

<code class="cpp">// hypothetical example
void mulArray(std::array<int, ?>& arr, const int multiplier) {
    for(auto& e : arr) {
        e *= multiplier;
    }
}</code>
Nach dem Login kopieren
<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>
Nach dem Login kopieren

Frage :

Gibt es einen einfachen Ansatz, damit dies funktioniert, ähnlich wie bei Arrays im C-Stil?

Antwort:

Leider nein.Das Übergeben von std::arrays unbekannter Größe erfordert die Verwendung von Funktionsvorlagen oder alternativen Containern wie std::vectors.

Vorlagenlösung:

<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>
Nach dem Login kopieren

Live-Beispiel: https://godbolt.org/z/T1d1n3vrM

Das obige ist der detaillierte Inhalt vonWie gehe ich mit std::arrays variabler Größe in Funktionen um: Ein einfacher Ansatz?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage