Utiliser HashMap et AutoHashMap
Stockez des paires clé-valeur avec std.
Utiliser HashMap et AutoHashMap est une leçon Zig Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Zig Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Zig Academy comprend 4 leçons au total.
Pourquoi une table de hachage
Une table de hachage stocke des paires clé-valeur et les recherche en temps quasi constant. Zig en fournit une dans sa bibliothèque standard ; vous écrivez donc rarement la vôtre. 🗺️
Commencer par AutoHashMap
std.AutoHashMap choisit automatiquement le hachage et l’égalité pour les types de clés courants comme les entiers et les énumérations. Fournissez-lui un type de clé et un type de valeur.
const Map = std.AutoHashMap(u32, []const u8);Elle a besoin d’un allocateur
Comme les autres conteneurs extensibles, la table emprunte de la mémoire. Transmettez un allocateur à init et la table grandira à mesure que vous ajouterez des entrées.
var map = std.AutoHashMap(u32, u32).init(allocator);
defer map.deinit();Insérer avec put
put ajoute une clé ou remplace sa valeur. L’opération peut allouer de la mémoire pendant l’agrandissement ; elle renvoie donc une union d’erreur et vous utilisez try.
try map.put(1, 100);Rechercher avec get
get renvoie une valeur optionnelle : la valeur stockée si la clé existe, ou null dans le cas contraire. Une clé absente ne provoque aucun plantage.
const v = map.get(1); // ?u32Déballer le résultat
Comme get est optionnel, gérez le cas d’absence avec orelse ou une capture dans une condition if avant d’utiliser la valeur.
const v = map.get(1) orelse 0;Vérifier et supprimer
Demandez à contains une réponse oui ou non, puis appelez remove pour supprimer une clé. Remove renvoie true si la clé était présente.
if (map.contains(1)) _ = map.remove(1);Quand Auto ne peut pas décider
Pour des clés comme les tranches, le hachage automatique ne compile pas. Utilisez alors le std.HashMap de niveau inférieur et fournissez un contexte.
StringHashMap pour les clés textuelles
Les clés textuelles sont courantes ; std fournit donc un utilitaire prêt à l’emploi : std.StringHashMap sait déjà hacher un []const u8.
var m = std.StringHashMap(i32).init(allocator);
try m.put("score", 42);Parcourir les entrées
Obtenez un itérateur et utilisez une boucle pour visiter chaque paire. Chaque entrée expose un pointeur vers la clé et un pointeur vers la valeur.
var it = map.iterator();
while (it.next()) |e| {
std.debug.print("{d}={d}\n", .{ e.key_ptr.*, e.value_ptr.* });
}Toujours appeler deinit sur la table
La table possède ses tampons internes ; appelez donc deinit lorsque vous avez terminé. L’allocateur de test le signale si vous l’oubliez.
defer map.deinit();Vérification rapide
Vous avez besoin d’une table de hachage dont les clés sont des entiers. Quel type standard convient le plus simplement ?
Récapitulatif
Utilisez AutoHashMap pour les clés simples et StringHashMap pour le texte. Initialisez avec un allocateur, ajoutez et recherchez les paires, parcourez-les, puis appelez deinit. 🎯
Apprends Zig avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 30
- Leçons
- 120
Questions Fréquemment Posées
La leçon « Utiliser HashMap et AutoHashMap » est-elle gratuite ?
Oui — le texte complet de « Utiliser HashMap et AutoHashMap » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Zig Academy, passe à CoddyKit PRO. Le cours Zig Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Utiliser HashMap et AutoHashMap » ?
Stockez des paires clé-valeur avec std. Tu pratiques Zig Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Zig Academy ?
Aucune expérience préalable n'est requise. Zig Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Utiliser HashMap et AutoHashMap » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Zig Academy ?
Oui. Chaque leçon Zig Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Une pile générique créée de zéro
- Une liste chaînée simple
- Utiliser HashMap et AutoHashMap
- Profilage et compromis de sécurité