c – 如何查找哈希表的大小?
发布时间:2020-12-16 09:29:30 所属栏目:百科 来源:网络整理
导读:我有一个像这样定义的哈希表 typedef std::unordered_mapunsigned long long int,unsigned long long int table_map; 在程序中,我使用fread将a文件的内容读入缓冲区,如下所示: fread(buffer,sizeof(long long int),1024,file1); 我将哈希表声明为 table_map
我有一个像这样定义的哈希表
typedef std::unordered_map<unsigned long long int,unsigned long long int> table_map; 在程序中,我使用fread将a文件的内容读入缓冲区,如下所示: fread(buffer,sizeof(long long int),1024,file1); 我将哈希表声明为 table_map c1; 现在我创建一个像哈希表 for (i = 0; i < 1024; i++) c1.insert(table_map::value_type(buffer[i],i)); 现在我的问题是,在for循环之后如何获得哈希表的大小? 它有1024个elemts类型的unsigned long long int以及相同类型的键但是我不能使用sizeof(Mymap)或`size of(c1)因为它只返回值32.有没有办法找到它? 谢谢, 解决方法
将容器的size属性乘以一对的大小:
std::cout << c1.size() * sizeof(table_map::value_type) << "n"; 在我的系统上,这打印出来:
这并不完全准确,因为没有考虑簿记数据.你无法解释它,因为(据我所知),该标准对该实现细节没有任何保证. 如果检查存储区数据,可能会获得稍微好一点的数据. :: bucket,:: bucket_count,:: bucket_size.这可能只会为您提供有关键,值和对的数据.我没试过. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |