热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

面试题之c++11新特性,你真的会答吗

也许你看过类似“c11必背十大新特性”之类的文章,所以背起来毫不费劲。但一顿输出之后,发现面试官的表情如同一潭死水,没有丝毫波澜。是的&#

也许你看过类似“c++11必背十大新特性”之类的文章,所以背起来毫不费劲。但一顿输出之后,发现面试官的表情如同一潭死水,没有丝毫波澜。是的,这种答案过于稀松平常,并不能为你的面试增色多少,只能保证不减分。那么怎样的回答可以让面试官有一些意外和惊喜?请看以下分析。

c++11是在c++98/03之后一次比较大的改进,大大小小的新特性一百多个,我们在有限的时间只能选择性的回答一些比较常用,同时能避免同质性的一些性质。什么是同质性?就是你背了auto又背decltype,背了shared_ptr又背unique_ptr,这都是同质性,他们属于同一种改进。于是,有下面这张图。
在这里插入图片描述

modern c++里面,把这一百多个特性归为六类。这里再次简化为四类。当然,读者也可以再进行自己整理为三类,或者两类,完全取决于大家的喜好。

热身。按照使用习惯和使用需求,把这些新特性归于以上四类,如果能比较清晰地说出这几个方面,显然是比背具体的哪一个特性更棒。因为这显示了你的归纳能力,和大局观

投入。在每一大类的新特性背景下,举例说明某些具体的新特性。如并发支持,提供了thread库,互斥量mutex和原子操作atom的支持。在简化使用的哲学方面,提供了统一使用花括号进行初始化的支持,以及使用auto进行变量类型推断的支持。

花活。如果能答到第二阶段,面试官理应频频点头了。如果你还想答得更加出色,这里提供一个参考。在举例的时候,尽量包括一些看起来不常用的特性,或者你觉得比较高级的特性。如移动语义,完美转发,万能引用(只需一到两个,避免同质性),可变参模板。并且,你需要指出,这些特性,并不是互不相干的。可能某一个新特性,包括了多种语言设计哲学(价值提升来了!),比如lamda表达式,既是一种简化使用,又可以提供对泛型编程的支持。移动语义,既是出于效率的考量,可以简化使用,又可以提高静态类型数据的安全性。

最后总结:很多新特性,都是在简洁性,高效性,兼容性的思路下共同作用的结果(完)。

按照这种思路来答,保证面试官对你另眼想看。

看过很多博文,都在教一些具体的招式。简单的罗列一些新特性,只适合学习和练习新特性,并不适合面试交流。这里,重在提供答题思路,所以并没有罗列那些新特性,只要勤快点,可以找到很多网站和文档来去研究那些招式的。在我看来,武功心法当然要比武功招式更让人心驰神往。

以上适合临时准备面试,时间比较紧张的情况。如果你想未雨绸缪,以深厚的知识储备支撑这种回答,可以参考modern c++原文,这里附上一份文档链接。


链接:https://pan.baidu.com/s/1_iBq8ybSi1Dh3M4zoRX-lg
提取码:tdyb



推荐阅读
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 通过与阿里云的合作,牛客网成功解决了跨国视频面试中的网络卡顿问题,为求职者和面试官提供了更加流畅的沟通体验。 ... [详细]
  • 并发编程:深入理解设计原理与优化
    本文探讨了并发编程中的关键设计原则,特别是Java内存模型(JMM)的happens-before规则及其对多线程编程的影响。文章详细介绍了DCL双重检查锁定模式的问题及解决方案,并总结了不同处理器和内存模型之间的关系,旨在为程序员提供更深入的理解和最佳实践。 ... [详细]
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
  • 本文介绍了如何利用npm脚本和concurrently工具,实现本地开发环境中多个监听服务的同时启动,包括HTTP服务、自动刷新、Sass和ES6支持。 ... [详细]
  • Python 异步编程:深入理解 asyncio 库(上)
    本文介绍了 Python 3.4 版本引入的标准库 asyncio,该库为异步 IO 提供了强大的支持。我们将探讨为什么需要 asyncio,以及它如何简化并发编程的复杂性,并详细介绍其核心概念和使用方法。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 资源推荐 | TensorFlow官方中文教程助力英语非母语者学习
    来源:机器之心。本文详细介绍了TensorFlow官方提供的中文版教程和指南,帮助开发者更好地理解和应用这一强大的开源机器学习平台。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • python的交互模式怎么输出名文汉字[python常见问题]
    在命令行模式下敲命令python,就看到类似如下的一堆文本输出,然后就进入到Python交互模式,它的提示符是>>>,此时我们可以使用print() ... [详细]
  • 本文总结了汇编语言中第五至第八章的关键知识点,涵盖间接寻址、指令格式、安全编程空间、逻辑运算指令及数据重复定义等内容。通过详细解析这些内容,帮助读者更好地理解和应用汇编语言的高级特性。 ... [详细]
author-avatar
大道废_796
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有