Maison  >  Article  >  interface Web  >  Explication de l'utilisation de POSITION

Explication de l'utilisation de POSITION

巴扎黑
巴扎黑original
2017-06-27 13:39:251963parcourir

POSITION est un type de données qui est souvent utilisé dans la bibliothèque de classes de modèles MFC. Nous pouvons voir par sa définition qu'il s'agit en fait d'un pointeur.
//position d'itération abstraite
struct POSITION { };
typedef POSITION* POSITION;
Le commentaire donné par MFC est : une position d'itération abstraite Puisqu'il est abstrait, cela signifie qu'il ne l'est pas. spécifiques. Types de données pour répondre aux besoins des différents paramètres du modèle.
Dans CList, POSITION est souvent utilisé comme paramètre de référence , ou comme valeur de retour. Ci-dessous, nous allons donner deux exemples simples pour vous aider à comprendre ce type de données, mais avant cela, je veux être verbeux, car beaucoup de gens sont sceptiques quant à la structure vide de POSITION. obstacle à leur compréhension. Puisqu’il s’agit d’une structure vide, comment peut-elle être utilisée pour définir un pointeur ?
En fait, le compilateur C++ ne considérera pas une structure vide comme complètement vide. Le compilateur lui allouera 1 octet de mémoire. En fait, pour parler franchement, la structure POSITION est équivalente à un type char non signé, donc POSITION. est équivalent à unsigned char, qui est le type BYTE dans Windows, donc POSITION a une forme équivalente, qui est BYTE*.
Nous nous concentrerons sur deux fonctions membres typiques dans CList. Bien sûr, tout le monde doit savoir que CList est une structure de données de liste chaînée. Regardons ces deux fonctions :
1. POSITION GetHeadPosition() const;
Évidemment, cette fonction est utilisée pour obtenir le début de la liste chaînée, et sa valeur de retour est une POSITION, qui est en fait un pointeur. Qui représente ce pointeur ? Bien entendu, c'est le pointeur vers l'en-tête de la liste chaînée que vous avez toujours voulu. Ce pointeur vient de new, et vous ne devez pas supprimer ce pointeur sans autorisation.
2. TYPE& GetAt(POSITION position);
Cette fonction semble étrange. Son seul paramètre d'entrée est un pointeur. En fait, il peut s'agir du pointeur du nœud principal que vous venez d'obtenir en utilisant GetHeadPosition. La signification de cette fonction est que vous devez fournir l'adresse d'un nœud, puis CList parcourra toute la chaîne pour rechercher et renvoyer les données de nœud qui correspondent à cette adresse.
Tant de bêtises, en un mot, tous les résultats sont accomplis en une seule phrase, en d'autres termes :
POSITION, vous pouvez la considérer comme une carte d'étudiant, avec elle, vous pouvez y trouver n'importe quel élève de la classe.
POSITION est utilisé dans MFC pour stocker l'index de divers objets List ou Array pour faciliter l'identification de la position des éléments lors du parcours. En fait, il s'agit d'une valeur de 32 bits et son contenu peut être un pointeur ou l'index d'un tableau.


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