


Comment passer un std::array de taille inconnue à une fonction en C ?
Oct 24, 2024 pm 07:04 PMPasser un std::array de taille inconnue à une fonction
En C , comment pouvez-vous créer une fonction qui accepte un std : :array d'un type connu, mais d'une taille inconnue ?
Considérons l'exemple suivant :
<code class="cpp">void mulArray(std::array<int, ?>& arr, const int multiplier) { for(auto& e : arr) { e *= multiplier; } }</code>
Étant donné cette fonction, vous pouvez créer std::arrays de différentes tailles et les transmettre à mulArray :
<code class="cpp">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>
Existe-t-il un moyen plus simple d'y parvenir, semblable à l'utilisation de tableaux simples de style C ?
Non, il n'est pas possible d'effectuer cela opération sans utiliser de modèles de fonction ou de conteneurs alternatifs comme std :: vector.
Solution de modèles de fonction
Pour créer une fonction générique capable de gérer std :: tableaux de n'importe quelle taille , vous devez utiliser un modèle de fonction :
<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>
Ce modèle définit une fonction qui prend un tableau d'entiers de n'importe quelle taille et multiplie chaque élément par le multiplicateur donné.
Un exemple réel de cette implémentation peut être trouvée ici : [Exemple en direct](https://godbolt.org/z/Y932XW)
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Quels sont les types de valeurs renvoyées par les fonctions du langage C? Qu'est-ce qui détermine la valeur de retour?

Gulc: Cibliothèque C construite à partir de zéro

C Fonction Langue Format de lettre ÉTAPES DE CONVERSION DE CAS

Quelles sont les définitions et les règles d'appel des fonctions du langage C et quelles sont les

Utilisation distincte et partage de phrases

Où est la valeur de retour de la fonction de langue C stockée en mémoire?

Comment fonctionne la bibliothèque de modèle standard C (STL)?

Comment utiliser efficacement les algorithmes du STL (trier, trouver, transformer, etc.)?
