Maison > développement back-end > C++ > Comment gérer std :: tableaux de taille variable dans les fonctions : une approche simple ?

Comment gérer std :: tableaux de taille variable dans les fonctions : une approche simple ?

Barbara Streisand
Libérer: 2024-10-24 13:05:02
original
995 Les gens l'ont consulté

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

Passer un std::array de taille inconnue à une fonction

Problème :

Comment créer une fonction qui fonctionne sur un std::array de type connu mais de taille variable ?

Exemple :

<code class="cpp">// hypothetical example
void mulArray(std::array<int, ?>& arr, const int multiplier) {
    for(auto& e : arr) {
        e *= multiplier;
    }
}</code>
Copier après la connexion
<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>
Copier après la connexion

Question :

Existe-t-il une approche simple pour faire fonctionner cela, similaire aux tableaux de style C ?

Réponse :

Malheureusement, non. Passer std::arrays de taille inconnue nécessite l'utilisation de modèles de fonctions ou de conteneurs alternatifs comme std::vectors.

Solution modèle :

<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>
Copier après la connexion

Exemple en direct : https://godbolt.org/z/T1d1n3vrM

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal