Classe de CArray
Prend en charge les tableaux qui sont comme les tableaux C, mais peut dynamiquement réduire et développer si nécessaire.
template < class TYPE, class ARG_TYPE = const TYPE& >
class CArray :
public CObject
Paramètres
TYPE
Le paramètre de modèle qui spécifie le type d'objets stocker dans le tableau.TYPE est un paramètre qui est retourné par CArray.ARG*_*TYPE
Le paramètre de modèle qui spécifie le type d'argument utilisé pour accéder à des objets stocker dans le tableau.Souvent une référence à TYPE.ARG_TYPE est un paramètre passé à CArray.
Membres
Constructeurs publics
Nom |
Description |
---|---|
Construit un tableau vide. |
Méthodes publiques
Nom |
Description |
---|---|
Ajoute un élément à la fin du tableau ; élève le tableau si nécessaire. |
|
Ajoute un autre tableau au tableau ; élève le tableau si nécessaire |
|
Copie une autre tableau au tableau ; élève le tableau si nécessaire. |
|
Retourne une référence temporaire au pointeur d'élément dans le tableau. |
|
Libère toute la mémoire non utilisée au-dessus de la limite supérieure actuelle. |
|
Retourne la valeur à un index donné. |
|
Obtient le nombre d'éléments dans ce tableau. |
|
Permet l'accès aux éléments du tableau.Peut être NULL. |
|
Obtient le nombre d'éléments dans ce tableau. |
|
Retourne le plus grand index valide. |
|
Insère un élément (ou les éléments dans un autre tableau) à un index spécifié. |
|
Détermine si le tableau est vide. |
|
Supprime tous les éléments de ce tableau. |
|
Supprime un élément à un index spécifique. |
|
Définit la valeur pour un index donné ; tableau non - autorisée pour développer. |
|
Définit la valeur pour un index donné ; élève le tableau si nécessaire. |
|
Définit le nombre d'éléments à inclure dans ce tableau. |
Opérateurs publics
Nom |
Description |
---|---|
Définit ou obtient l'élément à l'index spécifié. |
Notes
Les index de tableau commencent toujours à la position 0.Vous pouvez choisir résoudre la limite supérieure lié ou laissez la matrice de développer lorsque vous ajoutez des éléments au delà de la limite actuelle.La mémoire est allouée contigu à la limite supérieure, même si certains éléments sont null.
[!REMARQUE]
La plupart des méthodes qui se redimensionnent un objet d' CArray ou ajouter des éléments à l'aide memcpy_s aux éléments de déplacement.Il s'agit d'un problème car memcpy_s n'est pas compatible avec un objet qui nécessitent un constructeur d'être appelé.Si les éléments dans CArray ne sont pas compatibles avec memcpy_s, vous devez créer nouvel CArray de la taille appropriée.Vous devez ensuite utiliser CArray::Copy et CArray::SetAt pour remplir un nouveau tableau car ces méthodes utilisent un opérateur d'assignation au lieu d' memcpy_s.
Comme avec la matrice c, le temps d'accès d'un élément indexé par CArray est constante et est indépendant de la taille du tableau.
Conseil |
---|
Avant d'utiliser d'un tableau, utilisez SetSize pour générer sa taille et pour allouer de la mémoire pour celui-ci.Si vous n'utilisez pas SetSize, ajouter des éléments à la matrice la cause d'être souvent réaffectée et copiée.La réallocation et la copie fréquentes sont inefficaces et peuvent réduire la mémoire en fragments. |
Si vous avez besoin d'un dump des éléments dans un tableau, vous devez définir la profondeur de l'objet de CDumpContext à 1 ou supérieur.
Certaines fonctions membres de cette classe appelle les fonctions d'assistance globales qui doivent être personnalisées pour la plupart des fonctionnalités de la classe d' CArray .Consultez la rubrique programmes d'assistance de classe de collection dans la section de macro MFC et Globals.
La dérivation de classe de tableau est semblable à la dérivation de liste.
Pour plus d'informations sur l'utilisation CArray, consultez l'article collections.
Hiérarchie d'héritage
CArray
Configuration requise
Header: afxtempl.h