原文链接:
对于应届生:
- 标准库各容器的基本操作的复杂度。标准库算法的复杂度,例如 std::sort() 的平均复杂度、最坏复杂度(答 O(N^2) 和 O(N log N) 都算对),最坏情况什么时候出现。
- 标准库各容器(deque 除外)的数据结构(标准党勿喷,主流 STL 实现的数据结构都差不多),以及 vector 的容量增长方式。如果回答得特别好,还可以补充问为什么 vector::push_back() 的复杂度是分摊之后的 O(1),作为加分。
- 出一道使用 lower_bound / upper_bound 能轻松解决的简单算法题;或者实现 set_intersection() 或 set_union() 或 merge();或者实现 word count,统计每个单词出现的次数(最多十几行代码),如果有时间,输出时再按出现次数排序。
对于社招,补充问:
- 迭代器失效。(不要求记住所有的场景,但要有这个概念,其实知道数据结构的话不难推理。)
- 标准库的线程安全性。
- 自动化对象生命期管理,智能指针,循环引用,weak_ptr。
- list 的 insert()/erase() 与 vector 相比哪个快。(这个不是那么简单。)
注:以上内容摘自知乎,更多内容请查看知乎讨论。
时间: 2024-11-10 23:30:34