首页 > 代码库 > 面试 C++ 程序员,什么样的问题是好问题?

面试 C++ 程序员,什么样的问题是好问题?

原文链接:

《陈硕大神在知乎的回答》


对于应届生:

  • 标准库各容器的基本操作的复杂度。标准库算法的复杂度,例如 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 相比哪个快。(这个不是那么简单。)

注:以上内容摘自知乎,更多内容请查看知乎讨论。

面试 C++ 程序员,什么样的问题是好问题?