面试 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 相比哪个快。(这个不是那么简单。)

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

时间: 2024-11-10 23:30:34

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

HR要求来面试的程序员做笔试题被拒,听到原因懵了

在职场中,经常会遇到能力很强,但是工作态度却很一般,有点恃才傲物的员工,对于这样的情况,放弃又有点舍不得,不放弃又可能会影响到团队氛围.而如果面试中遇到这样的求职者该怎么办呢? 最近在互联网论坛上看到这样一个帖子:HR面试一位能力很强的程序员,要求做笔试题被拒:应届生才做笔试呢!网友评论炸锅了!到底是怎么回事呢? 这位HR在帖子中说自己遇到过这样一个程序员,写代码的技术还是非常不错的,在简历中也可以看出来.只是这个程序员有点太自大了.按照公司流程,HR要求程序员做一套笔试题.可那个程序员直接就说

如果你面试Python程序员时,碰到这十个问题,千万注意,是陷阱!

无论是应聘Python web开发,爬虫工程师,或是数据分析,还是自动化运维,都涉及到一些基础的知识!我挑了一些Python的基础面试题,看看你能不能的答上来,也许面试的同学用的着! 问题1:请问如何修改以下Python代码,使得下面的代码调用类A的show方法? 答: 此题考察的是new和init的用法,使用 new 方法,可以决定返回那个对象,也就是创建对象之前调用的,这个常见于于设计模式的单例.工厂模式.init 是创建对象是调用的. 问题4:下面这段代码输出什么? 问题7:如何添加代码,

IT面试宝典 – 程序员面试必备

权威的经典面试题库: 一线最新IT笔试总结: 搜罗名企公司高频试题: 专为从业IT开发,或跳槽,亦或充电的朋友而研发: 草民呕心沥血,四处集结,请教高手,才得此最完美的笔试题: 导航热门编程语言:Objective-C,Java,C/C++,PHP,Swift,HTML/5 - 地铁,公交,面试路上,且行且复习... --- IT面试宝典 -入职你的梦想 --- 官方下载:IT面试宝典 手机扫描二维码下载: 功能介绍: [面试]· 超过3000+各类热门编程语言面试题,让面试更简单: [推荐]·

给Android程序员的一些面试建议

前言 应大家的邀请,写一篇关于Android面试相关的博客,需要说明的是本文只针对Android应用开发,不针对rom开发以及逆向工程.我想面试对于程序员来说是很重要的一件事件,面试结果的好坏直接决定了能否进入某个公司以及以什么级别和待遇进入某个公司.我参加面试的经验并不多,但是以面试官的身份面试别人倒是有很多次,所以我可以结合这些经验来介绍下如何更好地把握一个面试. 什么是合适的候选者 在介绍如何面试之前,这里先从公司的角度来分析:"到底什么样的候选者是公司所需要的技术人才?"就我在

疯狂Java学习笔记(72)-----------大话程序员面试

大话程序员面试 10个我最喜欢问程序员的面试问题 程序员面试不完全指南 10个经典的C语言面试基础算法及代码 程序员的10大成功面试技巧 程序员选择公司的8个标准 编程开发 8个值得关注的PHP安全函数 简析TCP的三次握手与四次分手 10分钟掌握XML.JSON及其解析 高效的jQuery代码编写技巧总结 编译器的工作过程和原理 CPU空闲时在"忙"什么 5个强大的Java分布式缓存框架推荐 架构设计 趣味漫画:云计算的起源 负载均衡调度算法大全 程序人生 程序员不仅仅是写代码 20

阿里Java面试官分享初级Java程序员通过面试的技巧

本来想分享毕业生和初级程序员如何进大公司的经验,但后来一想,人各有志,有程序员或许想进成长型或创业型公司或其它类型的公司,所以就干脆来分享些提升技能和通过面试的技巧,技巧我讲,公司你选,两厢便利. 毕业生和初级程序员(一般是工作经验3年以下)大多处于事业的青黄不接的阶段,在找工作时往往会遇到缺乏实际项目经验的瓶颈,作为技术面试官,我也经常在面试过程中感受到这些候选人缺乏实际经验的缺陷.不过本人之前做过java兼职培训老师,也总结了些这批人群提升实际技能和面试技能的技巧,最近也老有人来问我这个,所

给年后面试的Android程序员的一些面试建议

前言 今天写一篇关于Android面试相关的博客,需要说明的是本文只针对Android应用开发,不针对rom开发以及逆向工程.我想面试对于程序员来说是很重要的一件事件,面试结果的好坏直接决定了能否进入某个公司以及以什么级别和待遇进入某个公司.我参加面试的经验并不多,但是以面试官的身份面试别人倒是有很多次,所以我可以结合这些经验来介绍下如何更好地把握一个面试. 什么是合适的候选者 在介绍如何面试之前,这里先从公司的角度来分析:"到底什么样的候选者是公司所需要的技术人才?"就我在百度的一些

程序员必读书单

作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文地址:http://www.cnblogs.com/figure9/p/developer-reading-list.html 关于 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及延伸阅读.旨在成为最好最全面的程序员必读书单. 前言 Reading makes a full man; conference a ready man; and writing

程序员必读书

前言 Reading makes a full man; conference a ready man; and writing an exact man. Francis Bacon 优秀的程序员应该具备两方面能力: 良好的程序设计能力: 掌握常用的数据结构和算法(例如链表,栈,堆,队列,排序和散列): 理解计算机科学的核心概念(例如计算机系统结构.操作系统.编译原理和计算机网络): 熟悉至少两门以上编程语言(例如C++,Java,C#,和Python): 专业的软件开发素养: 具备良好的编程