level 8
jolinbuxia
楼主
C++中,
字典:unordered_map<int, int> c; c.reserve(100000000);
数组:int *c = new unsigned int[100000000];
为什么字典占用空间是数组的好几倍?这个字典底层逻辑好像是链表,所以链表到底多存了什么东西?
字典的优势是检索快,但空间比数组占用大得多,
那能否用数组实现字典功能?将存储内容经过哈希函数映射为数组索引,字典中链表中经过哈希发生冲突碰撞,直接存在next中,数组中发生冲突,则存在索引+1处,或者再哈希?是否可行?
2025年03月20日 14点03分
1
字典:unordered_map<int, int> c; c.reserve(100000000);
数组:int *c = new unsigned int[100000000];
为什么字典占用空间是数组的好几倍?这个字典底层逻辑好像是链表,所以链表到底多存了什么东西?
字典的优势是检索快,但空间比数组占用大得多,
那能否用数组实现字典功能?将存储内容经过哈希函数映射为数组索引,字典中链表中经过哈希发生冲突碰撞,直接存在next中,数组中发生冲突,则存在索引+1处,或者再哈希?是否可行?