Sobes.tech
Junior — Middle

Дар кадом ҳолатҳо истифодаи контейнери std::unordered_map беҳтар аст?

sobes.tech AI

Ҷавоб аз AI

std::unordered_map беҳтар аст, вақте ки суръати баланд дар дастрасӣ ба унсурҳо тавассути калид муҳим аст ва тартиби унсурҳо аҳамият надорад. Ин як ҷадвали ҳеш мебошад, ки дар миёнаамр O(1) вақти дастрасиро таъмин мекунад, баръакс ба std::map, ки ҳамчун дарахти мувозинатёфта амалӣ шудааст ва дастрасиро дар O(log n) таъмин мекунад.

Ҳолатҳо барои истифодаи std::unordered_map:

  • Вақте ки лозим аст, ки зуд ҷустуҷӯ, ворид кардан ё тоза кардани унсурҳо тавассути калид.
  • Вақте ки тартиби унсурҳо муҳим нест.
  • Вақте ки калидҳо функсияи ҳеши хуб доранд, ки коллизияҳоро кам мекунад.

Маслиҳат барои истифода:

#include <unordered_map>
#include <string>
#include <iostream>

int main() {
    std::unordered_map<std::string, int> wordCount;
    wordCount["apple"] = 3;
    wordCount["banana"] = 2;

    std::cout << "apple: " << wordCount["apple"] << std::endl;
    return 0;
}