繁体   English   中英

Unordered_set插入最坏的情况

[英]Unordered_set insertion worst case

我有一个关于在unordered_set中插入的问题。 我想建立一个最坏情况插入的例子。 我有30000个字符串(len字符串<= 16,可能的字符是英文字母大写或小写,符号“_”)。 所以我有53 ^ 16个单词,我必须选择30000字符串来构建最坏情况插入。 我知道unordered_set使用std :: hash进行散列,我试图用len = 3来整理单词,然后计算它们的散列值。 我知道,每个哈希都是不同的,所以我不能用len = 3构建单词,使用相同的哈希来构建最坏情况的插入示例? 那我该怎么办?

std::hash实现各不相同 - 标准允许编译器供应商做他们认为合理的事情。 因此,通过在实例化unordered_set时指定自己的哈希例程来最简单地获得最坏情况:它可以为所有输入值返回相同的值(例如0)。

struct Hash
{
    size_t operator()(const std::string&) const { return 0; }
};

std::unordered_set<string, Hash> my_set;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM