2011-09-14 7 views
2

j'ai une structure du type suivantsizeof() d'une structure contenant un unordered_map en tant que membre

struct Node 
    { 
     int word;  
     int count;  
     unordered_map<Type, Node*> map;  

    }node; 

Est-il raisonnable de supposer que sizeof (noeud) vous donne la taille correcte de ce nœud en C++ ? Je suis sûr qu'il y aura du remplissage dans la structure mais le sizeof tiendra compte de la taille correcte du unordered_map.

+0

Que voulez-vous dire par sécurité? Si vous craignez que la taille puisse changer après un certain temps, ne vous inquiétez pas. – Andrey

+0

désolé de la confusion que je l'ai édité. Merci – Phelodas

Répondre

5

Oui, puisque sizeof est généralement calculé au moment de la compilation. Cela signifie que même si la taille de hachage est 1000 ou 100 ou 10 ou 1 ou 0 vous obtiendrez le même résultat de taille. ne suppose pas qu'il sera agrandi même si la table de hachage sera modifiée.

rappeler cependant que sizeof en C++ peut avoir des résultats parfois difficiles (rembourrage, place pour le pointeur de table virutal, etc ...)

+1

offtopic: pour une certaine taille d'appel, voir la section exceptionnelle des modèles de livre C++. sizeof a plus de pouvoir que vous ne le pensez à première vue –

Questions connexes