C++面试题整理

1.STL及数据结构(注意效率与复杂度)
vector和list的内部实现是什么?分别适用于什么应用场景?
vector随机访问的时间复杂度是多少?怎么优化vector的查找速度?
vector扩容的过程?
怎么彻底清空vector?
vector怎么查找元素?如果是一个结构怎么查找一个vector结构中的指定元素?(find find_if)
map查找的复杂度?
map的底层是怎么实现的?map与hashmap的区别?什么时候应该使用map什么时候应该使用hashmap?
常见排序算法及其时间和空间复杂度?桶排序有了解的吗?
给定一个场景,选择一种合适的容器?
怎么定义一个环形队列?怎么判断环形队列的空与满?

2.C++中引用和指针的区别?

引用是对象的别名, 操作引用就是操作这个对象, 必须在创建的同时有效得初始化(引用一个有效的对象, 不可为NULL),初始化完毕就再也不可改变, 引用具有指针的效率, 又具有变量使用的方便性和直观性, 在语言层面上引用和对象的用法一样, 在二进制层面上引用一般都是通过指针来实现的,只是编译器帮我们完成了转换。 之所以使用引用是为了用适当的工具做恰如其分的事, 体现了最小特权原则。

3.在C++程序中调用被C编译器编译后的函数,为什么要加extern“C”?

extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,其声明的函数和变量可以在本模块或其它模块中使用。 通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明。

4.简述strcpy、sprintf 与memcpy 的区别

三者主要有以下不同之处:

(1)操作对象不同,strcpy 的两个操作对象均为字符串,sprintf 的操作源对象可以是多种数据类型,

目的操作对象是字符串,memcpy 的两个对象就是两个任意可操作的内存地址,并不限于何种数据类型。
(2 )执行效率不同,memcpy 最高,strcpy 次之,sprintf 的效率最低。

(3 )实现功能不同,strcpy 主要实现字符串变量间的拷贝,sprintf 主要实现其他数据类型格式到字
符串的转化,memcpy 主要是内存块间的拷贝。

说明:strcpy、sprintf 与memcpy 都可以实现拷贝的功能,但是针对的对象不同,根据实际需求,来选择合适的函数实现拷贝功能。

整理的C++面试,这些是最为常见的相关推荐

  1. 动力节点面试题mysql真的难_动力节点整理120道面试问题集锦

    原标题:动力节点整理120道面试问题集锦 题目:120 个 Java 经典面试题和答案(上) 我是动力节点的一名学员,就职于百度,在学习过程中整理了一些常见面试题,希望对大家有所帮助.上课期间老师告诉 ...

  2. 编程面试过程中最常见的10大算法

    编程面试过程中最常见的10大算法 编程语言:C/C++ 1. 字符串 如果IDE没有代码自动补全功能,所以你应该记住下面的这些方法. toCharArray() // 获得字符串对应的char数组 A ...

  3. 蓝牙模块怎么指定查询另一个蓝牙模块_蓝牙模块以IPEX端口外接天线、PCB板载天线最为常见...

    蓝牙模块作为一种能提供蓝牙通信,进行蓝牙互联的通信模块,之所以能够不用考虑使用位置或使用方向就可以顺利完成短距离的数据传输,就是因为有一个很重要的天线零部件承担着发射和接收指令的使命,由于目前的技术尚 ...

  4. 面试姊妹篇4:常见的Java多线程面试题

    主要内容 本文主要记录多线程相关的操作问题,这些问题主要出现在一些面试中,当然学会了对本身的代码能力也有提升. 目录 1.交替多线程 2.发令枪问题 3.多线程顺序执行 4.关于饥饿死锁 5.线程数设 ...

  5. 【算法面试】leetcode最常见的150道前端面试题 --- 中等题

    点击上方 前端瓶子君,关注公众号 回复算法,加入前端编程面试算法每日一题群 兄弟姐妹们,中等题来了,本篇17道,剩下63道,每周更新10道! 之前简单题的链接如下: [算法面试]leetcode最常见 ...

  6. [HR面试] 65个最常见的面试问题

    [HR面试] 65个最常见的面试问题 1.请你自我介绍一下你自己? 回答提示:一般人回答这个问题过于平常,只说姓名.年龄.爱好.工作经验,这些在简历上都有.其实,企业最希望知道的是求职者能否胜任工作, ...

  7. 蛋花花总结互联网营销最为常见的六种模式

    蛋花花总结互联网营销最为常见的六种模式!如今随着互联网的普及互联网营销也非常的火,我们在很多地方都能见到相关广告.蛋花花总结了一下发现在互联网营销方面有最为常见的六种模式,下面就来介绍一下. 蛋花花总 ...

  8. 2021年面试,整理全网初、中、高级常见Java面试题

    面试题答案私信[面试]即可获取,500+道面试题.内容中包含基础.集合.并发.JVM.Spring.Spring MVC.Spring Boot.Spring Cloud.Dubbo.MySQL.Re ...

  9. 2021年面试,整理全网初、中、高级常见Java面试题附答案

    此为部分面试题包含答案,更多面试题见微信小程序 "Java精选面试题",3000+道面试题.内容持续更新中包含基础.集合.并发.JVM.Spring.Spring MVC.Spri ...

最新文章

  1. SwiftUI编辑文字和图片
  2. Ubuntu 16.04设置IP、网关、DNS
  3. c# DllImport 错误处理的不足及解决办法
  4. 区域链结构对于数据中心有什么影响?这个影响是好是坏呢!
  5. sql2005数据导入出错问题
  6. 牛顿如果穿越到现在,能看懂相对论和量子力学吗?
  7. svn 无线服务器,远程svn服务器
  8. 分布式监控:Zabbix_sender介绍及配置
  9. CCIE试验备考之交换VLAN间路由
  10. 【java】超市购物小程序
  11. java接收前端JSON字符串
  12. xp系统做无盘服务器,锐起无盘网吧系统无盘XP系统特点
  13. 广告行业中那些趣事系列43:小布语音助手知识问答比赛优化实践
  14. 前端高效开发必备的js库梳理,日常使用中会持续更新
  15. opencv——批量处理图片并保存
  16. git pull 报错:error: Pulling is not possible because you have unmerged files.
  17. AES解密报错:Given final block not properly padded. Such issues can arise if a bad key is used during dec
  18. 从零开始搭二维激光SLAM --- 基于GMapping的栅格地图的构建
  19. 2022大学生寒假社会实践活动稿件怎样向新闻媒体投稿?
  20. 【Linux】快捷键

热门文章

  1. [转载] Python Web开发—进阶提升 490集超强Python视频教程 真正零基础学习Python视频教程
  2. 《Linux就该这么学》培训笔记_ch18_使用MariaDB数据库管理系统
  3. 拼多多服务端实习生笔试-滑动窗口2018/4/3
  4. MySQL5.7 踩坑实录
  5. Android开发--Button的应用
  6. mockit学习(一)
  7. VIO-为什么要进行在线时间标定
  8. ubuntu 安装php gd,如何在ubuntu上安装php5-gd?
  9. cpan安装_生信平台搭建(五):安装perl模块
  10. kettle 插入更新 数据增量_kettle基于时间戳增量更新