
1. Caractéristiques
Prend en charge les requêtes clé->valeur typiques.
Peut être utilisé comme un tableau.
L'ajout et la suppression de nœuds sont d'une complexité O(1).
La clé prend en charge les types mixtes : il existe des tableaux d'index de tableau associés en même temps.
La valeur prend en charge les types mixtes.
Prend en charge le parcours linéaire : comme foreach.
2. Exemple
typedef struct _hashtable {
uint nTableSize; //La longueur du tableau, pas le nombre d'éléments uint nTableMask //Le masque du tableau, toujours égal à nTableSize-1;
uint nNumOfElements; //Le nombre d'éléments stockés ulong nNextFreeElement; //Pointe vers la prochaine position d'élément vide Bucket *pInternalPointer; //Pendant la boucle foreach, il est utilisé pour enregistrer la position de l'élément actuellement parcouru Bucket *pListHead;
Seau *pListTail ;
Bucket **arBuckets;//Tableau d'éléments stockés dtor_func_t pDestructor;//Destructeur zend_bool persistant;//S'il est persistant. De là, nous pouvons constater que les tableaux PHP peuvent être conservés en mémoire sans recharger chaque requête.
char non signé nApplyCount ;
zend_bool bApplyProtection;
}Table de hachage ;Ce qui précède sont les caractéristiques de la table de hachage en PHP. J'espère que cela sera utile à tout le monde.