首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
课程
专栏·文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
贪吃的小熊猫面向对象
C++
发布于浙江
关注
已关注
取消关注
@蒋豆芽:
先临三维C++ 一面凉经之解答
1.你怎么学习的C++略2.这个问题忘了是啥了 反正是内存分配相关的我懵了没回答上(题目都没咋听明白)略3.堆和栈的区别堆栈空间分配不同。栈由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等,栈有着很高的效率;堆一般由程序员分配释放,堆的效率比栈要低的多。堆栈缓存方式不同。栈使用的是一级缓存, 它们通常都是被调用时处于存储空间中,调用完毕立即释放;堆则是存放在二级缓存中,速度要慢些。空间大小: 栈的空间大小并不大,一般最多为2M,超过之后会报Overflow错误。堆的空间非常大,理论上可以接近3G。(针对32位程序来说,可以看到内存分布,1G用于内核空间,用户空间中栈、BSS、data又要占一部分,所以堆理论上可以接近3G,实际上在2G-3G之间)。能否产生碎片: 栈的操作与数据结构中的栈用法是类似的。‘后进先出’的原则,以至于不可能有一个空的内存块从栈被弹出。因为在它弹出之前,在它上面的后进栈的数据已经被弹出。它是严格按照栈的规则来执行。但是堆是通过new/malloc随机申请的空间,频繁的调用它们,则会产生大量的内存碎片。这是不可避免地。4.32位整型在大小端的区别小端模式:低的有效字节存储在低的存储器地址。常用的X86结构是小端模式。大端模式:高的有效字节存储在低的存储器地址。KEIL C51则为大端模式。5.int char 的大小int 4字节,char 1字节6.struct vs classstruct 一般用于描述一个数据结构集合,而 class 是对一个对象数据的封装;struct 中默认的访问控制权限是 public 的,而 class 中默认的访问控制权限是 private 的,例如:struct A{ int iNum; // 默认访问控制权限是 public}class B{ int iNum; // 默认访问控制权限是 private}在继承关系中,struct 默认是公有继承,而 class 是私有继承;class 关键字可以用于定义模板参数,就像 typename,而 struct 不能用于定义模板参数,例如:template<typename T, typename Y> // 可以把typename 换成 class int Func(const T& t, const Y& y) { //TODO }7.静态成员变量特点在c++中,static关键字可以用于定义类中的静态成员变量:使用静态数据成员,它既可以被当成全局变量那样去存储,但又被隐藏在类的内部。类中的static静态数据成员拥有一块单独的存储区,而不管创建了多少个该类的对象。所有这些对象的静态数据成员都共享这一块静态存储空间。8.什么是虚函数和纯虚函数函数前面修饰类型为virtual的为虚函数包含纯虚函数的类称为抽象类(Abstract Class)。之所以说它抽象,是因为它无法实例化,也就是无法创建对象。原因很明显,纯虚函数没有函数体,不是完整的函数,无法调用,也无法为其分配内存空间。抽象类通常是作为基类,让派生类去实现纯虚函数。派生类必须实现纯虚函数才能被实例化。9.数组 vs 链表数组内存连续、有序;链表内存可以不连续数组可以直接访问下标,访问时间复杂度O(1);链表需要通过下一级指针层层递进访问,访问时间复杂度O(n)数组插入或删除元素时需要移动后面的元素,时间复杂度O(n);而链表插入或删除元素时,时间复杂度O(1)频繁访问元素的场景用数组;频繁插入或删除的场景用链表单向队列用什么实现可以用链表,也可以用数组线程如何同步数据?线程同步主要包括四种方式:互斥量pthread_mutex_读写锁pthread_rwlock_条件变量pthread_cond_信号量sem_12.多线程问题略13.指针 vs 引用(1)指针是实体,占用内存空间;引用是别名,与变量共享内存空间。(2)指针不用初始化或初始化为NULL;引用定义时必须初始化。(3)指针中途可以修改指向;引用不可以。(4)指针可以为NULL;引用不能为空。(5)sizeof(指针)计算的是指针本身的大小;而sizeof(引用)计算的是它引用的对象的大小。(6)如果返回的是动态分配的内存或对象,必须使用指针,使用引用会产生内存泄漏。(7)指针使用时需要解引用;引用使用时不需要解引用‘*’。(8)有二级指针;没有二级引用。单例类如何创建单例实现原理是,将能够创建对象的函数都设置为private,通过静态成员返回一个实例。有两种方式,一个是懒汉式,一个是饿汉式。懒汉式需要考虑加锁。实现代码如下:#include <iostream>#include <pthread.h>using namespace std;class singleInstance{public: static singleInstance* GetsingleInstance(){ if (instance == NULL){ pthread_mutex_lock(&mutex);//mlock.lock(); if (instance == NULL){ instance = new singleInstance(); } pthread_mutex_unlock(&mutex);//mlock.unlock(); } return instance; }; ~singleInstance(){}; static pthread_mutex_t mutex;//mutex mlock; 加锁互斥private:// 涉及创建对象的函数都设置为private singleInstance(){}; singleInstance(const singleInstance& other){}; singleInstance& operator=(const singleInstance& other){ return *this; }; static singleInstance* instance;};//懒汉式,静态变量需要定义singleInstance* singleInstance::instance = nullptr;pthread_mutex_t singleInstance::mutex;int main(){ // 因为没有办法创建对象,就得采用静态成员函数的方法返回静态成员变量 singleInstance *s = singleInstance::GetsingleInstance(); //singleInstance *s1 = new singleInstance(); // 报错 cout << "Hello World"; delete s; // 防止内存泄露 return 0;}下面是饿汉式:#include <iostream>#include <pthread.h>using namespace std;class singleInstance{public: static singleInstance* GetsingleInstance(){ // 饿汉式,直接创建一个对象,不需要加锁 static singleInstance instance; return &instance; }; ~singleInstance(){};private:// 涉及创建对象的函数都设置为private singleInstance(){}; singleInstance(const singleInstance& other){}; singleInstance& operator=(const singleInstance& other){ return *this; };};int main(){ // 因为没有办法创建对象,就得采用静态成员函数的方法返回 singleInstance *s = singleInstance::GetsingleInstance(); //singleInstance *s1 = new singleInstance(); // 报错 cout << "Hello World"; return 0;}15.类中默认函数有几个类的6个默认的成员函数包括: 构造函数、析构函数、拷贝构造函数、赋值运算符重载函数、取地址操作符重载、const 修饰的取地址操作符重载。16.对公司了解多少?略以上答案均来自本人专栏:机器学习面试题汇总与解析(蒋豆芽面试题总结)欢迎大家围观:https://blog.nowcoder.net/jiangwenbo
点赞 25
评论 1
全部评论
推荐
最新
楼层
联想
校招火热招聘中
官网直投
相关推荐
期待好运相伴
04-30 15:32
门头沟学院 计算机类
腾讯前端开发(已OC)
当初面试前也看了很多友友的面经,现在面试告一段落,就来回馈一下社区。我一直在投的CDG部门面试,时间线:4.10一面,4.12二面,二面G,给我调组;4.16一面,4.18二面,4.24三面,4.28hr面+云证,4.29oc。时间线过了好久,面试的八股问题记不太清楚,只能挑一些印象深刻的写下来,希望对大家有帮助。4.10一面算法题:一道输入输出、一道回文的中等题1)storage与cookie的区别 2)了解过自动化部署吗3)vue生命周期发送请求问题(这个要分情况讨论)4)文件切片上传出现丢包如何处理4.12二面算法题:构建菱形、构造函数自定义方法、函数柯里化、斐波那契数列、进制转换智力题...
腾讯开奖138人在聊
我的实习求职记录
点赞
评论
收藏
转发
Lwr666
昨天 22:15
北方工业大学 计算机类
?
点赞
评论
收藏
转发
被普调的熊猫很想去毕业旅行
03-14 15:34
算法工程师
985本硕,这样的简历能不能找一家暑期算
点赞
评论
收藏
转发
whereareUfrom
04-09 14:29
Java
什么意思啊?
生活不顺还是咋了?怪
点赞
评论
收藏
转发
牛客139685661号
昨天 18:30
西北大学 机械类
机械应届生offer选择
第一个是深圳的杉川机器人,岗位是工艺工程师,不包吃住,薪资是13500(其中10000基本工资➕3000绩效➕500补贴)hr说基本都能拿到3000绩效,年终至少2个月 工作时间双休 第二个是珠海迈为,岗位是产品工程师,包吃住,薪资11500(试用期),转正没说多少,年终0到5个月,行业是半导体芯片这方面的
投递迈为等公司8个岗位 >
平台or薪资 硬件uu更看重哪个
点赞
评论
收藏
转发
点赞
收藏
评论
分享
回复帖子
全站热榜
1
...
5.6校招&实习招聘信息汇总
6989
2
...
道心破碎了
5808
3
...
【薪资爆料第二期】打破信息差!爆料薪资拿200元京东卡!
5051
4
...
全面讨论 后端、前端、客户端的区别
4295
5
...
5.7 暑期实习求职总结
4295
6
...
秋招太卷,春招捡漏——24春招总结
4165
7
...
现在一点都不焦虑了
3687
8
...
废了!废了!
3615
9
...
携程笔试5.6
3591
10
...
27届实习
3109
正在热议
#
牛客帮帮团来啦!有问必答
#
499280次浏览
8671人参与
#
春招你拿到offer了吗
#
334692次浏览
5024人参与
#
如何判断面试是否凉了
#
897840次浏览
13856人参与
#
硬件/芯片公司工作体验
#
15106次浏览
225人参与
#
现在还是0offer,延毕还是备考
#
334682次浏览
4321人参与
#
找不到好工作选择GAP真的丢人吗
#
11510次浏览
109人参与
#
最后再改一次简历
#
764188次浏览
10862人参与
#
互联网没坑了,还能去哪里?
#
350410次浏览
5572人参与
#
实习,投递多份简历没人回复怎么办
#
889368次浏览
15904人参与
#
快手工作体验
#
47193次浏览
893人参与
#
许愿池
#
70598次浏览
1509人参与
#
摸鱼打卡站
#
7223次浏览
476人参与
#
国企vs私企,你更想去?
#
17843次浏览
163人参与
#
互联网公司评价
#
70790次浏览
980人参与
#
工作两年想退休了
#
14426次浏览
141人参与
#
华为求职进展汇总
#
463327次浏览
4575人参与
#
0offer是寒冬太冷还是我太菜
#
381610次浏览
4580人参与
#
产品面经
#
15359次浏览
344人参与
#
实习工作,你找得还顺利吗?
#
17683次浏览
220人参与
#
你觉得找工作该拿大厂还是小厂练手
#
47871次浏览
703人参与
牛客网
牛客企业服务