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