初始时,unordered_map会分配一块内存用于存储桶的数组,数组的大小由容器的大小和负载因子决定。 当unordered_map需要重新调整哈希表的大小时,会分配一块新的内存空间,将原有的键值对重新哈希到新的桶中,并释放旧的内存空间。 unordered_map的优势在于其快速的查找和插入性能,适用于需要频繁进行查找和插入操作的场景。
您正试图在try ... catch块之外创建m对象(从而导致bad_alloc错误)。将try“后退”一级,您将捕获到...
因此,"unordered_map"会分配两次内存的原因是: 初始时,unordered_map会分配一块内存用于存储桶的数组,数组的大小由容器的大小和负载因子决定。 当unordered_map需要重新调整哈希表的大小时,会分配一块新的内存空间,将原有的键值对重新哈希到新的桶中,并释放旧的内存空间。 unordered_map的优势在于其快速的查找和插入...