面试真题

C++ · 简单 · Momenta

map可以寻址吗?

简单 C++ 🎤 Momenta
参考答案
结论:map不支持像数组那样的常数时间随机寻址(按整数下标访问),但提供按键查找的operator[]。原理:map底层红黑树节点分散在堆上,内存不连续,仅提供双向迭代器而非随机访问迭代器,因此不能通过索引直接跳转;operator[]实际是先对数时间查找key,若不存在则插入默认值,并非寻址;若需按序访问第k个元素,需用迭代器递增或std::advance(O(n))。示例:map<int,int> m; m[0]=1是按键0插入,不是访问第0个位置。
题目整理自公开面经,答案由校招宝自研生成,仅供参考