某量化1面

  1. 各种拷打项目,由于和之前实习岗位挺类似的,拷打的很细

  2. C++中,unordered_map和普通的map有什么区别?

  3. unordered_map什么时候触发扩容(rehash)?解决哈希冲突的算法是什么?

    首先明确哈希的本质目标——将键(key)快速映射到存储位置(数组索引)。实现步骤可分为四层: (1)定义键值对结构; (2)设计哈希函数,将key转为非负整数索引; (3)处理哈希冲突(多个key映射到同一索引); (4)当负载因子(load factor = 元素数 / 数组长度)超过阈值(如0.75)时,触发扩容与重哈希(rehashing),保证性能稳定。

    重哈希的过程(以链地址法为例)

    1. 检测:插入新元素后,若 α > max_load_factor,触发重哈希。
    2. 分配:创建一个新的桶数组,大小一般为当前大小的 2 倍(或下一个质数)。
    3. 遍历旧桶:对旧桶数组中的每个非空桶,遍历其链表中的每个节点。
    4. 重新计算:对每个节点,用新数组大小计算新的桶索引:new_index = hash(key) % new_size
    5. 移动:将该节点插入到新桶链表中(注意:可以逐个移动,避免额外拷贝)。
    6. 释放:删除旧桶数组(内存释放由容器管理)。
  4. 多线程中,互斥锁、自旋锁、原子操作的区别和应用场景?原子变量有什么应用场景?

    原子操作是由硬件直接保证的不可中断的指令(如 test-and-setcompare-and-swapfetch-and-add)。在执行过程中,不会因为线程切换或中断而被分割。

  5. 讲一讲C++的智能指针。

  6. C++的内存管理机制介绍一下。

  7. 了解过tc_malloc吗?

  8. 讲讲TCP的拥塞控制。

  9. UDP和TCP的差异。

  10. 你有什么想问我的?

没咋答好,感觉凉了

#发面经攒人品#
全部评论

相关推荐

评论
1
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务