热门标签 | 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



推荐阅读
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文比较了eBPF和WebAssembly作为云原生VM的特点和应用领域。eBPF作为运行在Linux内核中的轻量级代码执行沙箱,适用于网络或安全相关的任务;而WebAssembly作为图灵完备的语言,在商业应用中具有优势。同时,介绍了WebAssembly在Linux内核中运行的尝试以及基于LLVM的云原生WebAssembly编译器WasmEdge Runtime的案例,展示了WebAssembly作为原生应用程序的潜力。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
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社区 版权所有