C++ 适合X个元素的哈希映射?

C++ 适合X个元素的哈希映射?,c++,data-structures,indexing,hashmap,element,C++,Data Structures,Indexing,Hashmap,Element,哈希映射适合多少个元素范围 我知道一切都是常数时间,唯一的问题是内存消耗过大,但我想知道在多大程度上过多?任何数字范围 唯一的问题肯定不是内存消耗。内存消耗在元素数量上通常是线性的,这并不特别糟糕 如果存在大量散列冲突(元素散列到相同的值),这将是一个主要问题,因为您必须搜索具有该散列值的所有元素才能找到正确的元素。存储具有相同散列值的元素(称为“单独链接”)的一种流行方法是使用链表,而在链表中搜索速度较慢 哈希表的性能是否良好取决于: 散列元素的分布(这将影响散列冲突的数量),这取决于实际元

哈希映射适合多少个元素范围

我知道一切都是常数时间,唯一的问题是内存消耗过大,但我想知道在多大程度上过多?

任何数字范围

唯一的问题肯定不是内存消耗。内存消耗在元素数量上通常是线性的,这并不特别糟糕

如果存在大量散列冲突(元素散列到相同的值),这将是一个主要问题,因为您必须搜索具有该散列值的所有元素才能找到正确的元素。存储具有相同散列值的元素(称为“单独链接”)的一种流行方法是使用链表,而在链表中搜索速度较慢

哈希表的性能是否良好取决于:

  • 散列元素的分布(这将影响散列冲突的数量),这取决于实际元素和散列函数
  • 哈希表的负载因子(哈希表中有多少元素与其大小相关)。如果这个值太高,即使有一个合适的分布,也会有大量的散列冲突
    • 任何数字范围

      唯一的问题肯定不是内存消耗。内存消耗在元素数量上通常是线性的,这并不特别糟糕

      如果存在大量散列冲突(元素散列到相同的值),这将是一个主要问题,因为您必须搜索具有该散列值的所有元素才能找到正确的元素。存储具有相同散列值的元素(称为“单独链接”)的一种流行方法是使用链表,而在链表中搜索速度较慢

      哈希表的性能是否良好取决于:

      • 散列元素的分布(这将影响散列冲突的数量),这取决于实际元素和散列函数
      • 哈希表的负载因子(哈希表中有多少元素与其大小相关)。如果这个值太高,即使有一个合适的分布,也会有大量的散列冲突

      这取决于很多因素,我怀疑没有更多关于您的具体情况的信息,任何有用的答案都不会出现。任何非负大小。您有多少可用内存?如果数据结构内部使用32位数学,那么您将无法在其中放置超过2^32个项(如果实施者对签名与未签名的选择不谨慎,则可能不超过2^31项)。除此之外,唯一的限制因素将是你的计算机有多少可用内存。这取决于很多因素,我怀疑没有更多关于你具体情况的信息,任何有用的答案都不会出现。任何非负大小。你有多少可用内存?如果数据结构内部使用32位数学,那么你将ng将无法在其中放置超过2^32项(如果实现者不小心选择有符号与无符号,则可能不会超过2 ^31项)。除此之外,唯一的限制因素将是您的计算机有多少可用RAM。