Heim > Backend-Entwicklung > C++ > Hauptteil

Wie gehe ich mit std::Arrays unterschiedlicher Größe in C-Funktionen um?

Mary-Kate Olsen
Freigeben: 2024-10-24 14:46:01
Original
799 Leute haben es durchsucht

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

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

Frage:

Wie kann eine Funktion geschrieben werden, um std::arrays bekannten Typs, aber unterschiedlicher Größe zu verarbeiten? Betrachten Sie zum Beispiel das folgende Beispiel:

<code class="cpp">// Hypothetical function
void mulArray(std::array<int, ?>& arr, const int multiplier) {
    for (auto& e : arr) {
        e *= multiplier;
    }
}</code>
Nach dem Login kopieren

Wie kann eine Funktion wie mulArray definiert werden, um Arrays unterschiedlicher Größe wie die folgenden zu berücksichtigen:

<code class="cpp">std::array<int, 17> arr1;
std::array<int, 6>  arr2;
std::array<int, 95> arr3;</code>
Nach dem Login kopieren

Antwort:

Leider ist es nicht möglich, eine Funktion zu schreiben, die std::arrays unbekannter Größe akzeptiert, ohne eine Funktionsvorlage zu verwenden oder einen anderen Containertyp wie std::vector zu verwenden.

Funktionsvorlagen:

<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

In diesem Beispiel ist die mulArray-Funktion als Funktionsvorlage definiert, sodass sie Arrays beliebiger Größe verarbeiten kann. Der SIZE-Parameter gibt die Größe des Arrays zur Kompilierungszeit an.

Beispielverwendung:

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

// Function call with template instantiation for size 17
mulArray(arr1, 3);</code>
Nach dem Login kopieren

Hinweis: Bei Verwendung von Funktionsvorlagen Die Funktionsdefinition muss in einer Header-Datei platziert werden, damit während der Kompilierung darauf zugegriffen werden kann.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit std::Arrays unterschiedlicher Größe in C-Funktionen um?. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!