如果删除C++中的一些元素,搜索时间会减少吗?

如果删除C++中的一些元素,搜索时间会减少吗?,c++,map,unordered-map,C++,Map,Unordered Map,我在一个在线裁判系统中遇到了一个算法问题。我用无序的地图作为字典。但是,如果我删除无序的_映射中的一些访问元素,我的程序将被接受,否则不会。无序的_图的大小与搜索的数量无关。所以,我的问题是如果我们删除C++中的一些元素,搜索时间会减少吗?我认为无序的_映射是一个哈希表,里面的元素数量与搜索性能没有任何关系 搜索时间随着无序_映射中元素数量的增加而增加,特别是当您需要动态分配额外内存以容纳所有不需要的元素时。我相信无序_映射是一个存储桶的哈希表。因此,平均搜索时间是恒定的,但最坏的情况是线性的。

我在一个在线裁判系统中遇到了一个算法问题。我用无序的地图作为字典。但是,如果我删除无序的_映射中的一些访问元素,我的程序将被接受,否则不会。无序的_图的大小与搜索的数量无关。所以,我的问题是如果我们删除C++中的一些元素,搜索时间会减少吗?我认为无序的_映射是一个哈希表,里面的元素数量与搜索性能没有任何关系

搜索时间随着无序_映射中元素数量的增加而增加,特别是当您需要动态分配额外内存以容纳所有不需要的元素时。我相信无序_映射是一个存储桶的哈希表。因此,平均搜索时间是恒定的,但最坏的情况是线性的。检查:如果哈希函数容易发生冲突,则删除元素可能会加快同一个bucket上的进一步操作。如果在添加其他哈希表之前先删除一些哈希表,则整个哈希表的大小可能会保持较小,从而减少查找过程中的调整大小开销和缓存错误。无序的_-map API公开了足够多的内部代码,可以为每个bucket编写元素的柱状图——在给定实际数据、算法和哈希函数的情况下,您可以自己发现是否有bodgy事件发生。