50场面试总结C++常见问题

  1. C++类型转换有哪些?
  2. C++虚函数的原理
  3. 智能指针有哪些?应用场景?
  4. select, poll, epoll的原理、区别、优缺点
  5. std::sort的底层实现
  6. lamda表达式的本质?
  7. std::vector的size和capacity,扩容机制
  8. 往std::vector中用push_back添加n个元素,总时间复杂度是多少?
  9. std::vector怎么缩容?
  10. C++的完美转发是什么?
  11. 删除和新增STL容器中的元素,迭代器会失效吗?
  12. STL有哪些组件?
  13. 介绍一下仿函数,它有什么作用?
  14. STL容器是线程安全的吗?
  15. 类的深拷贝和浅拷贝
  16. 如何实现一个简单的“写时拷贝”类?
  17. malloc和free是线程安全的吗?
  18. 什么是静态链接和动态链接?分别是如何链接的?
  19. 程序运行时内存模型?
  20. std::unordered_map和std::map的底层实现?std::map元素有序吗?
  21. std::unordered_map查询的时间复杂度?什么时候退化成O(n)?怎么优化?
  22. std::unordered_map的负载因子是什么?
  23. go有个关键字defer,用于在函数结束时自动调用,C++如何实现类似功能?
  24. STL中的内存分配器是怎么实现的?
  25. std::move是什么?怎么实现?std::forward是什么?怎么实现(参见C++ primer)
  26. auto和decltype的作用和区别?
  27. new和malloc区别?
  28. C++如何避免内存泄漏?如何排查?
  29. 构造函数和析构函数可以定义为虚函数吗?析构函数什么时候需要定义为虚函数?
  30. 构造函数和析构函数可以抛出异常吗?
  31. 构造函数中能调用虚函数吗?会发生多态吗?
  32. 频繁地申请和释放堆区空间,有什么坏处?怎么解决?
  33. if else 语句和 switch 语句哪个性能更好?
  34. 以下代码会发生什么?
struct Logger {
  void log(const string &msg) {
    cout << msg << endl;
  }
}

int main() {
  Logger *p = nullptr;
  p->log("hello");   // 会发生空指针异常吗?输出什么?
}
#投票#
全部评论

相关推荐

娃哈哈哈哈哈哈咯:感觉如果不是985,西电北邮,其他的只有本地容易有消息,外地一投一个不吱声。
点赞 评论 收藏
分享
中电29所 中试工程师 总包21W
0offer要鼠啦:研究所普遍加班严重,选钱多的
点赞 评论 收藏
分享
7 74 评论
分享
牛客网
牛客企业服务