首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
rogn
武汉大学 C++
发布于湖北
关注
已关注
取消关注
m
@宁宁天下第一:
日常实习C++面经汇总与教程
最近忙了大概一个月,终于找到实习了,这里把自己面试过程遇到的问题记录一下。ps:很多东西我之前都写过文章,所以重复的地方就直接贴上过去的文章的链接了。这里只放上有关C++的内容,其它的例如项目啊,编译链接工具的使用就因人而异了。C++中的多态以下是一个常见的多态的场景struct A { virtual void foo() = 0;};struct B : A { virtual void foo() { cout << "this is B\n"; }};struct C : A { virtual void foo() { cout << "this is C\n"; }};struct D : A { virtual void foo() { cout << "this is D\n"; }};int main() { vector<A*>v = { new B{},new C{},new D{} }; for (auto& it : v) { it->foo(); }}这里我们用到了虚函数严格鸽:C++虚函数表的位置——从内存的角度对于C++中对象的内存模型,我的建议是用C语言模拟一个严格鸽:C语言实现虚函数/继承/封装这里一个经常遇到的问题,为什么我们说虚函数慢?考虑到,函数在执行的时候,需要进行跳转(汇编的角度而言就是动cs:ip 而虚函数,需要先去虚函数表里面,然后在跳转到相应的函数上,也就是跳转的次数多了,对cache不友好。但是,最重要的是,虚函数不能进行内联优化。请记住,C++的编译器的优化水平很高,但是对于虚函数这种“运行期”确定的函数,是不能依靠编译器进行编译优化的。这里提到了,运行期,和编译期。这两个概念在后面也会提到。那么如何解决这个问题呢?我们可以使用编译期多态来CRTP来解决。严格鸽:现代C++学习—— CRTP 编译期多态(CRTP不是万能的,有些东西必须是运行期的智能指针智能指针的实现就是RAII现代C++如果非要说是C with xxx的话,那么就是 C with RAII严格鸽:现代C++学习—— 什么是RAII严格鸽:现代C++学习 —— 为什么需要std::move至于智能指针的具体实现,网上有很多,大家自己去看就可以了。谈及智能指针,最好也谈以下所有权的概念例如,我现在有个资源,然后我有个函数,我是选择把所有权给这个函数啊,还是把所有权留在原来的作用域。(这个内容在上面的文章就有提及。模板模板就是面向编译器的编程,我们通过编写模板相关的代码,让编译器帮我们根据提供的类型,生成对应的代码。另外,C++的类型系统是十分强大的,所以有关模板的内容希望大家好好学习。C++模板学习实践 (这是个专栏,内容可能比较多,看是看完肯定有收获的另外,有关模板的发展(可以我的文章里面的模板元都是const static 这种比较old的。首先是模板变量和模板类型,过去我们需要::value,::type 现在可以直接定义了。对于标准库,_v 就是 ::value , _t 就是::type ( 所以学一学old版本的很有帮忙的还有就是constexpr 函数,对于编译期计算,可以直接constexpr 函数解决。另外就是C++20的概念与约束了过去我们需要用 严格鸽:现代C++学习——模板SFINAE 来表示一个鸭子类型。鸭子类型:我希望一个类型具有这样的变量,这样的函数。。。 例如下面我们就约束了类型T是一个int或者一个具有size函数len成员变量的类型。template<typename T>concept is_int = is_same_v<T, int>;template<typename T>concept need = requires(T x) { x.size(); x.len;};template<typename T>requires(is_int<T> || need<T>)void foo(T x) {}int main() { foo(1); struct A {void size();int len;}; foo(A{}); struct B { void Size(); int Len; }; foo(B{});//编译失败,ide会报错}上面是几个经常被问道的内容,属于基础了,下面放上几个杂项。lambda严格鸽:c++函数进化史 (函数,函数指针,function,仿函数,lambda)lambda编译器帮我们生成的匿名的仿函数variantvariant是可以析构的union严格鸽:C/C++ union 使用教程 (常见操作与缺陷)严格鸽:现代C++学习——实现多类型存储std::variant类型擦除在问std::any的实现的时候问的。在C语言总,一般是用void* ,然后自己维护一个type严格鸽:现代C++学习——实现动态类型std::any模板元编程就让写了个斐波那契数列但是你可以归并排序!严格鸽:模板元 编译期 链表 归并排序多线程问了一些实现什么的原子类型是用cas (compare and swap) 实现的。其它的锁都是基于原子类型的操作std::call_once之前没有听说过std::call_once - cppreference.compimpl为了加快编译时间的,但是我没这么用过(编译时间不是用来摸鱼的吗有个面试官说过,可以用编译参数来控制。堆,栈空间堆是os帮我们维护的,栈空间编译器帮我们维护了。注意不要写出这样的代码int* foo() { int arr[100]; return arr;}异常安全没有怎么用过(最多几千行的代码,用啥异常啊)可以了解下std::optional 与 std::expectedEffective C++ 29:追求异常安全的代码关于noexcept,可以看下这个代码void foo1() noexcept;void foo1() noexcept(noexcept(foo1())) {}void foo2();void foo2() noexcept(noexcept(foo2())) {}int main() { constexpr bool x = noexcept(foo1()); constexpr bool y = noexcept(foo2());}有一些忘了
点赞 102
评论 16
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
03-13 21:27
已编辑
字节跳动_TT图文_研发(实习员工)
再战27暑期实习!Shoppe虾皮 广告搜索二面
1. 自我介绍2. 算法题(全英文)给定一个二维数组:1 2 34 5 67 8 9你需要找到pointA到pointB,路径有C个点的路径数量Input1 3 3Output5从1到3,合法的路径有:1->2->3 1->4->3. 1->5->3. 1->6->3 1->8->3.1->7->3 不合法是因为1->7中间经过了4(多了一个点)额外补充:你经过的点可以在下次经过的时候可以跳过比如Input:4 4 5那么其中有一条合法路径就是 4->1->7->5(因为经过了4,所以1到7中间经过...
查看3道真题和解析
点赞
评论
收藏
分享
03-18 11:02
门头沟学院 前端工程师
找实习两个月了,说说我现在啥情况
双非大三,找前端实习,没啥特别的背景,就是普通在找。差不多两个月了,投了字节、腾讯、美团、快手、B站、网易、小红书这些,还有一些小厂。字节笔试过了,约面了下周;腾讯到现在没动静;美团好像凉了但没说凉......前端找实习最大的感受是网申有点折磨人,每家系统长得不一样,但要填的东西都差不多,就是不给你复制粘贴,手打了一遍又一遍。后来在牛客搜有没有啥工具,发现了个网申助手,把信息填进去一次,后面都帮你带上,挺好用的,用了之后投得快多了。现在主要在补React,感觉只会Vue不够用了。有在找前端实习的同学吗,来说说你们遇到啥坑了
点赞
评论
收藏
分享
02-25 21:47
甘肃政法大学 Java
java后端一个面试都没有,想改测开了
26应届偏远地区双非硕,buff叠满了
点赞
评论
收藏
分享
03-01 15:01
门头沟学院 Java
求点评下简历
第一次发牛客,想让兄弟们给点建议,我就想找个Java实习🙄
点赞
评论
收藏
分享
03-16 20:42
南昌大学 算法工程师
PTA L2-006 树的遍历
给出了一个二叉树的后续遍历和中序遍历,求它的层序遍历。先弄清楚步骤: 1.由后序遍历和中序遍历来还原二叉树; 2.借助栈来实现bfs,从而实现层序遍历:这道题的的关键在于如何还原二叉树,大体的思路是:1.先由后序遍历来确定根节点,再从中序遍历里找到该根节点位置, 2.由中序遍历的位置来确定左子树的元素的个数,这样右子树的个数也可计算出来。 3.将左子树和右子树调用还原的函数,最后得出原二叉树。 4.借助栈来实现bfs,完成层序遍历。 #include<bits/stdc++.h> using namespace std; typedef struct Node{ int data;...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
28届实习拷打,一场面试,23个Agent问题
1.0W
2
...
携程3.18Java开发一面面经
4482
3
...
虾皮SSC后端一面面经
4354
4
...
百度一面 Web前端实习生 3.17
4313
5
...
腾讯暑期实习
3876
6
...
命运换了个赛道给我发牌
3501
7
...
小红书前端日常实习二面凉经
3207
8
...
真实业务和场景题的疯狂拷打
3004
9
...
25届校招上岸总结 | 我的经验是越早越好
2835
10
...
3.12腾讯视频后端一面
2364
创作者周榜
更多
正在热议
更多
#
如何一边实习一边找下家?
#
25280次浏览
177人参与
#
实习生如何通过转正
#
129474次浏览
1466人参与
#
巨人网络春招
#
9771次浏览
163人参与
#
跟HR说什么能被秒回?
#
7897次浏览
150人参与
#
电信求职进展汇总
#
45111次浏览
207人参与
#
春招/暑实第一面是哪家?
#
17063次浏览
217人参与
#
MiniMax求职进展汇总
#
12413次浏览
221人参与
#
快手年终开大包
#
11735次浏览
97人参与
#
海信求职进展汇总
#
97861次浏览
419人参与
#
面试官最爱问的 AI 问题是......
#
13310次浏览
471人参与
#
银行笔面经互助
#
184615次浏览
1303人参与
#
把自己当AI,现在最消耗你token的问题是什么?
#
2308次浏览
82人参与
#
秋招提前批,你开始投了吗
#
728902次浏览
8459人参与
#
设计人秋招体验最好的公司
#
85882次浏览
742人参与
#
你的嫡系AI是哪个?
#
3366次浏览
95人参与
#
现在入门AI应该走哪些方向?
#
3333次浏览
84人参与
#
你收到了哪些公司的笔试?
#
15388次浏览
84人参与
#
迅雷笔试
#
5323次浏览
27人参与
#
机械人,说说你的烦心事
#
135376次浏览
1136人参与
#
你最近一次加班是什么时候?
#
114507次浏览
561人参与
#
找工作中的小确幸
#
85087次浏览
463人参与
#
实习学到最有价值的工作习惯
#
64592次浏览
491人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务