117.info
人生若只如初见

如何在C++中实现Hashtable

在C++中实现Hashtable可以使用标准库中的unordered_map或者自己实现一个Hashtable类。以下是一个简单的自定义Hashtable类的实现示例:

#include 
#include 
#include 

class Hashtable {
private:
    static const int TABLE_SIZE = 10;
    std::vector>> table;

    int hashFunction(int key) {
        return key % TABLE_SIZE;
    }

public:
    Hashtable() {
        table.resize(TABLE_SIZE);
    }

    void insert(int key, int value) {
        int index = hashFunction(key);
        for (auto& pair : table[index]) {
            if (pair.first == key) {
                pair.second = value;
                return;
            }
        }
        table[index].push_back({key, value});
    }

    void remove(int key) {
        int index = hashFunction(key);
        table[index].remove_if([key](std::pair pair) { return pair.first == key; });
    }

    int get(int key) {
        int index = hashFunction(key);
        for (auto& pair : table[index]) {
            if (pair.first == key) {
                return pair.second;
            }
        }
        return -1; // key not found
    }
};

int main() {
    Hashtable ht;
    
    ht.insert(1, 10);
    ht.insert(2, 20);
    
    std::cout << ht.get(1) << std::endl; // Output: 10
    std::cout << ht.get(2) << std::endl; // Output: 20
    
    ht.remove(1);
    
    std::cout << ht.get(1) << std::endl; // Output: -1 (key not found)

    return 0;
}

在这个例子中,我们使用一个vector来存储链表,每个链表存储具有相同hash值的键值对。我们实现了插入、删除和获取操作。实际上,C++标准库中的unordered_map就是使用类似的哈希表实现的。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe458AzsIAwZSAFc.html

推荐文章

  • C++指针的指针怎样进行赋值

    指针的指针在C++中通常用于指向指针的指针变量。要对指针的指针进行赋值,可以使用以下语法:
    int num = 10;
    int* ptr = # // 指向num的指针

  • C++指针的指针可以做什么

    C++中的指针的指针(pointer to pointer)可以用来存储指向另一个指针的地址。通过使用指针的指针,可以实现对指针的间接访问和修改,从而更灵活地操作内存和数据...

  • C++指针的指针如何初始化

    在C++中,指针的指针可以通过以下几种方式进行初始化: 双重取址符号(&&):可以使用双重取址符号(&&)来初始化指针的指针。例如: int x = 10;
    int *p =...

  • C++指针的指针有何用途

    C++指针的指针用途主要有以下几个方面: 传递指针的地址:可以在函数中传递指针的地址,而不是指针本身,这样可以在函数内修改指针指向的地址或者指向的值。 动态...

  • C++ Hashtable使用有哪些技巧

    使用合适的哈希函数:选择一个能够尽可能均匀地分布数据的哈希函数可以减少哈希冲突的概率,提高查询效率。 处理哈希冲突:当发生哈希冲突时,可以使用开放寻址法...

  • C++ Hashtable是什么

    C++ Hashtable是一种数据结构,用于存储键值对的集合,其中每个键都有一个对应的值。Hashtable通常通过哈希函数来确定每个键值对应的存储位置,可以快速地插入、...

  • C++ Hashtable如何提升性能

    有几种方法可以提升C++ Hashtable的性能: 使用更好的哈希函数:选择一个好的哈希函数可以减少哈希冲突的发生,从而提高Hashtable的性能。一些常用的哈希函数包括...

  • C++ Random库怎样调理随机种子大小

    在C++中,可以使用标准库来生成随机数。要调整随机种子的大小,可以使用std::random_device来生成种子,然后将其传递给随机数生成器。
    以下是一个示例代码:...