当前位置: 首页 > news >正文

C++八股 —— map/unordered_map

1. 底层数据结构

map —— 红黑树

随处可见的红黑树:原理、实现及应用场景 - 知乎

unordered_map —— 散列表

[C++] 哈希表(散列表)详解_c++哈希表-CSDN博客

2. 常见面试题

  1. 底层为红黑树的容器有哪些

    • map
    • multimap
    • set
    • multiset
  2. 红黑树和AVL树的区别

    • 平衡规则不同:
      • AVL树左右子树的高度差最大为1
      • 红黑树的左右子树黑节点的高度相同
    • 红黑树的平衡代价更小,插入和删除的效率更高
    • AVL树提供更严格的平衡,查找性能更优
    • 红黑树使用内存更多
  3. unordered_map是否有缩容操作

    没有;负载因子超过阈值之后会有扩容操作,但是不会有自动缩容;

    提供了接口,可以自己实现:

    bucket_count; // 哈希桶个数
    load_factor;  // 获取当前负载因子
    rehash(n);    // 将哈希桶的个数设置为n,并执行rehash操作
    reserve(n);   // 分配容纳n个元素的适当桶数,并执行rehash
    
    template<typename Key, typename Value>
    class CustomUnorderedMap {
    private:std::unordered_map<Key, Value> map;// 检查是否需要缩容void checkShrink() {if(map.size() > 1 && map.load_factor() < 0.1) {map.reserve(n: map.size());}}public:void erase(const Key& key) {map.erase(key);checkShrink();}
    }; 
    
  4. unordered_map有哪些性能优化

    • 预估元素数量并设置合适的哈希桶数量
    • 合适的哈希函数,避免大量冲突
    • 合适的负载因子(一般默认为0.7),max_load_factor
  5. mapunordered_map的区别

    • 底层数据结构不同:红黑树 - 散列表
    • 查找性能: O ( l o g n ) O(logn) O(logn) - O ( 1 ) O(1) O(1)
    • 是否有序:有序 - 无序
    • 内存使用:少 - 多
    • 使用场景:有序 - 无序
  6. key为字符串,且不区分大小 或 结构体 或类对象,怎么处理

    • map:重新实现比较函数
    • unordered_map:重新实现哈希函数和等于函数

相关文章:

  • 滑动窗口-窗口中的最大/小值-单调队列
  • GoWeb开发(基础)
  • JavaWeb入门与进阶:从基础概念到热门框架全解析
  • 智能网联汽车 “中央计算” 博弈:RTOS 与跨域融合的算力分配挑战
  • Dive into LVGL (1) —— How LVGL works from top to down
  • 安装docker
  • RabittMQ-高级特性2-应用问题
  • 深度学习基础--目标检测常见算法简介(R-CNN、Fast R-CNN、Faster R-CNN、Mask R-CNN、SSD、YOLO)
  • 【论文解读】| ACL2024 | LANDeRMT:基于语言感知神经元路由的大模型机器翻译微调框架
  • Kafka单机版安装部署
  • Docker下Gogs设置Webhook推送Spug,踩坑记录与解决方案
  • 机器学习第三讲:监督学习 → 带答案的学习册,如预测房价时需要历史价格数据
  • 广东省省考备考(第六天5.9)—言语:逻辑填空(每日一练)
  • 初识C++:入门基础(二)
  • 香港科技大学(广州)新开设智能制造理学硕士学位项目2025年9月入学机会
  • 可信数据空间:标准体系建设指南及空间能力要求
  • 【论文阅读】基于客户端数据子空间主角度的聚类联邦学习分布相似性高效识别
  • Spring AI 系列——使用大模型对文本内容分类归纳并标签化输出
  • python---kafka常规使用
  • nginx的学习笔记
  • 这座古村,藏着多少赣韵风华
  • 中国海外发展:今年前4个月销售665.8亿元,花费305亿元拿地
  • 《中国人民银行业务领域数据安全管理办法》发布,6月30日起施行
  • 中国国家电影局与俄罗斯文化部签署电影合作文件
  • 盖茨:20年内将捐出几乎全部财富,盖茨基金会2045年关闭
  • 山东如意集团及实控人等被出具警示函,此前实控人已被罚十年禁止入市