比较c ++哈希图的各个存储桶中的元素?

问题描述 投票:1回答:1

我想比较unordered_map<string, int>中不同存储桶的大小,但是我不确定如何去做。我是否只需要查看存储桶(bucket_count())的数量,然后简单地查看bucket_size(i),还是必须访问每个存储桶中的键和值并进行比较?我到目前为止(下面)的代码无法正常工作,并且我尝试过对其进行修改,但是仍然无法正常工作。似乎我在做我需要做的事情,但显然不是。任何帮助将不胜感激,并感谢您的时间。

   size_t WordFrequency::maxBucketSize() // return size of largest bucket in hash table
{
        size_t biggestBucket = wordFreq.bucket_size(0); //Something to compare to
        size_t nBuckets = wordFreq.bucket_count(); // Total number of buckets
       for(int i = 1;i<nBuckets;i++)
{
      if(wordFreq.bucket_size(i) > biggestBucket) //If # elements in bucket i > preset value
{
        biggestBucket = wordFreq.bucket_size(i); //Bucket(i) #elements= biggest
}
//loop
}
      return biggestBucket;

}
c++ hashmap unordered-map
1个回答
0
投票

@@ mildlyamusing1您非常接近,但我会使用另一个变量来保持循环计数,在每个循环中增加计数并将其与计数进行比较。ps。我想我在您的课程中:p

© www.soinside.com 2019 - 2024. All rights reserved.