Maison >développement back-end >C++ >Comment puis-je déclarer statiquement un tableau 2D en tant que membre de données de classe C ?

Comment puis-je déclarer statiquement un tableau 2D en tant que membre de données de classe C ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-12 11:27:16158parcourir

How Can I Statically Declare a 2-D Array as a C   Class Data Member?

Déclaration statique d'un tableau 2D en tant que membre de données de classe

En C, une classe peut contenir un tableau 2D en tant que membre de données. Cependant, l'allocation dynamique de mémoire est généralement utilisée pour créer ces tableaux. Pour éviter cela et obtenir une allocation de mémoire contiguë, on peut envisager de déclarer le tableau de manière statique.

Un tableau 2D déclaré statiquement au sein d'une classe peut être initialisé à l'aide d'un constructeur personnalisé. Voici un exemple :

class Grid {
public:
    unsigned NR, NC;
    double Coordinates[NR][NC];

    Grid(unsigned rows, unsigned columns) : NR(rows), NC(columns) {}
};

Cette classe définit un tableau 2D Coordonnées avec les dimensions NR et NC. Le constructeur initialise NR et NC lors de la création de l'objet.

Bien qu'il soit possible de déclarer un tableau 2D de manière statique en C , il est important de noter que la taille du tableau doit être connue au moment de la compilation . Cela peut constituer une limitation dans certains scénarios.

Une approche alternative consiste à utiliser un vecteur de vecteurs (std::vector>) pour représenter un tableau 2D. Cela offre plus de flexibilité car les dimensions peuvent être ajustées de manière dynamique. Cependant, cela peut entraîner un accès mémoire moins efficace par rapport à un tableau contigu.

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