C++面试宝典
文章平均质量分 57
备战2022春招和暑期实习,全是干货,你值得拥有
0泡果奶
愿你的努力撑得起你的野心
展开
-
【C++实习生】每天十道面试题打卡
第二十天打卡,暂时会搁置一段时间,我需要学两个开源项目,可能是两周也可能更久,等把开源项目摸透了,会专门出一篇文章的,在等待的日子里,希望大家多多把已有的知识掌握,那么面试也就不难了。原创 2022-03-17 20:35:03 · 1004 阅读 · 0 评论 -
【C++实习生】每天十道面试题打卡
第十九天打卡,已经弄到数据库部分了,感觉可以去找一些开源项目来完善简历,大家有什么好的推荐没?原创 2022-03-16 15:25:55 · 2508 阅读 · 0 评论 -
【C++实习生】每天十道面试题打卡
第十八天,感觉快要把对应的知识搞定了,但是今天不知道为什么输入法出了问题,以前都是用电脑自带的输入法,没出现过问题,今天不知道怎么回事,打拼音的时候,汉字总是出不来,重启也没用,只好换了其他软件的输入法,如果你们有什么好的办法解决原输入法打汉字出不来的问题,帮我一下吧,实在是头疼。原创 2022-03-15 20:24:19 · 381 阅读 · 0 评论 -
【C++实习生】每天十道面试题打卡
打卡第十七天,感觉到知识在我脑袋里面发酵,真是不错的感觉原创 2022-03-14 20:52:53 · 171 阅读 · 0 评论 -
【C++实习生】每天十道面试题打卡
第十六天,加油!!!原创 2022-03-13 16:09:19 · 5383 阅读 · 0 评论 -
【C++实习生】每天十道面试题打卡
第十五天,感觉计网要学的知识好多啊,有那种学不完的感觉,概念还贼多,真是头疼!!!原创 2022-03-12 10:12:20 · 4748 阅读 · 0 评论 -
【C++实习生】每天十道面试题打卡
第十四天打卡,怎么说呢?越学习越觉得自己之前没有学什么,不过好在现在还有机会能补回来,继续加油!!!原创 2022-03-11 21:37:01 · 3470 阅读 · 0 评论 -
【C++实习生】每天十道面试题打卡
第十三天,好累啊,希望一切都是值得的。原创 2022-03-10 21:13:25 · 975 阅读 · 2 评论 -
【C++实习生】每天十道面试题打卡
打卡,第十二天原创 2022-03-09 20:48:15 · 263 阅读 · 0 评论 -
【C++实习生】每天十道面试题打卡
第十一天,顺利打卡,还有时间改一下简历原创 2022-03-08 15:32:39 · 322 阅读 · 0 评论 -
【C++实习生】每天十道面试题打卡
第十天,还剩两个星期不到,冲冲冲。原创 2022-03-07 20:34:49 · 480 阅读 · 0 评论 -
【C++实习生】每天十道面试题打卡
时间好快,已经第九天了,感觉还有好多东西没学啊,救命啊原创 2022-03-06 13:40:44 · 421 阅读 · 0 评论 -
【C++实习生】每天十道面试题打卡
第八天,继续加油啊!!!老同志原创 2022-03-05 10:43:32 · 108 阅读 · 0 评论 -
【C++实习生】每天十道面试题打卡
第七天,继续加油!!!双非也有大厂梦原创 2022-03-04 21:13:45 · 2721 阅读 · 0 评论 -
【C++实习生】每天十道面试题打卡
第六天,明天可以写操作系统相关的面试题了原创 2022-03-03 20:43:37 · 427 阅读 · 0 评论 -
【C++实习生】每天十道面试题打卡
第五天,冲冲冲!原创 2022-03-02 21:22:58 · 330 阅读 · 0 评论 -
【C++实习生】每天十道面试题打卡
打卡第四天,今天只有上午一节课,可以早点完成预期目标,顺便多刷两道题原创 2022-03-01 15:37:43 · 2097 阅读 · 0 评论 -
【C++实习生】每天十道面试题打卡
打卡第三天,冲冲冲!!!原创 2022-02-28 21:37:06 · 430 阅读 · 0 评论 -
【C++实习生】每天十道面试题打卡
第二天打卡,加油原创 2022-02-27 14:10:57 · 145 阅读 · 4 评论 -
【C++实习生】每天十道面试题打卡
第一天1.C++和C的特点与区别?2.C++的多态是如何实现的?3.C++如何实现内存管理?4.C++11中有哪些新特性?5.C++11中有哪些新特性?6.可变参数模板的作用7.malloc的原理以及brk系统调用和mmap系统调用的作用分别是什么?8.智能指针有哪几种?9.如何解决智能指针循环依赖的问题?10.STL中Vector,List和Map的底层原理,以及如何实现?原创 2022-02-26 15:19:20 · 281 阅读 · 0 评论 -
高频笔试题_二叉树
构造二叉树原创 2022-01-21 20:30:26 · 567 阅读 · 0 评论 -
请问构造函数中的能不能调用虚方法?
最好不要在构造函数中调用虚方法,从语法上讲,调用完全没有问题;但是从效果上看,往往不能达到目的。派生类对象构造期间进入基类的构造函数时,对象类型变成了基类类型,而不是派生类类型。同样,进入基类析构函数时,对象也是基类类型。所以,虚函数始终是仅仅调用基类的虚函数(如果是基类调用虚函数),不能达到多态的效果,所以放在构造函数中是没有意义的,而且往往不能达到本来想要的效果。...原创 2022-01-20 21:31:36 · 1114 阅读 · 0 评论 -
高频笔试题_栈和队列
注意第二题原创 2022-01-20 21:18:25 · 2148 阅读 · 0 评论 -
简述C++有哪几种传值方式,它们之间的区别是什么?
C++中的传值方式一共有三种:分别是值传递、引用传递和指针传递1.值传递:形参即使在函数体内发生改变,也不会影响实参的值2.引用传递:形参在函数体内的值发生改变3.指针传递:在指针指向没有发生改变的前提下,形参在函数体内值发生变化的时候,会影响实参的值1.值传递用于对象时,整个对象会拷贝一个副本,效率很低;2.引用传递用于对象时,不会发生拷贝行为,只绑定对象更安全、更高效;3.指针传递与引用传递一样,但没有引用传递安全...原创 2022-01-19 21:36:05 · 1798 阅读 · 0 评论 -
高频笔试题_栈和队列
回文链表里面包含了反转链表和排序链表的知识原创 2022-01-19 21:09:32 · 301 阅读 · 0 评论 -
高频笔试题_栈和队列
有效的括号字符串今天时间不是很够,只写出来这一题,讲一下这个题目的思路吧1.先遍历字符串,如果遍历到左括号或者通配符星号,则将它们压入vec1.1同时,如果遍历到星号,让star++(代表通配符个数)2.第二种情况就是遍历到右括号的时候,如果vec空了,则代表没有与右括号匹配的字符了,就return false2.1先抵消右括号,当遍历到右括号时,定义一个bool类型的变量,判断遍历完整个vec之后,是否有左括号出现,如果没出现过,则证明vec里面全部是通配符星号,用星号抵掉一个右括号,否则用左括原创 2022-01-18 21:19:56 · 191 阅读 · 0 评论 -
笔试高频题_栈和队列
这次有三道题,不过都是难度为简单的题目用队列实现栈class MyStack {public: queue<int> que; MyStack() { } void push(int x) { que.push(x); } int pop() { int size = que.size(); size--;//因为要返回栈顶元素,所以先减一个,这样留下来的最后一个队列元原创 2022-01-17 20:48:43 · 353 阅读 · 0 评论 -
高频笔试题_反转链表Ⅱ
高频笔试题_反转链表Ⅱ这一题做起来和反转链表的思路差不多,都是把一个区间的链表来反转class Solution {public: ListNode* reverseBetween(ListNode* head, int left, int right) { ListNode* dummy = new ListNode(0); dummy->next = head; ListNode* pre = dummy; //先将原创 2022-01-14 21:01:22 · 247 阅读 · 0 评论 -
高频笔试题_相交链表
面试常考题相交链表题目已经保证链表中不存在环的问题,那就很好写了。先让两个链表的指针的位置相对一样,然后同时向右移动,直到两指针相等,详细注释已经放在代码里了,相信对大家有所帮助class Solution {public: ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { ListNode* curA = headA; ListNode* curB = head原创 2022-01-14 19:31:42 · 180 阅读 · 0 评论 -
高频笔试题_排序链表
排序链表我的做法分为以下几步:1.特殊判定2.链表分成两部分3.排序后再来合并链表class Solution {public: ListNode* sortList(ListNode* head) { // 特殊判定 if(head == nullptr || head->next == nullptr) { return head; } //使用归并排序和快慢指针来将链表分为两段原创 2022-01-13 21:17:08 · 236 阅读 · 0 评论 -
说说野指针的概念、产生原因以及如何避免?
概念:野指针也就是指向位置不可知的指针产生原因:释放内存后,指针没有及时置空,仍然指向该内存char *p = (char *)malloc(sizeof(char)*100); strcpy(p, "Douya"); free(p);// p所指向的内存被释放,但是p所指的地址仍然不变 ... if (p != NULL){// 没有起到防错作用 strcpy(p, "hello, Douya!");// error} 如何避免野指针的产生?1.指针初始化的时候置原创 2022-01-12 19:49:12 · 462 阅读 · 0 评论 -
说说static关键字的作用
1.定义全局静态变量和局部静态变量:在变量前面加上static关键字。初始化的静态变量会在.data段分配内存,未初始化的静态变量会在.bss段分配内存。直到程序结束,静态变量始终会维持前值。只不过全局静态变量和局部静态变量的作用域不一样;2.定义静态函数:在函数返回类型前加上static关键字,函数即被定义为静态函数。静态函数只能在本源文件中使用;3.在变量类型前加上static关键字,变量即被定义为静态变量。静态变量只能在本源文件中使用;//示例static int a;static void原创 2022-01-11 21:13:58 · 6358 阅读 · 0 评论 -
高频笔试题_反转链表
反转链表这道题是面试笔试里常出现的题目,想出来挺容易的,但不太好写这里我贴出代码class Solution {public: ListNode* reverseList(ListNode* head) { ListNode* temp; ListNode* pre = nullptr; ListNode* cur = head; while(cur) { temp = cur->next;// 存原创 2022-01-11 20:46:20 · 476 阅读 · 0 评论 -
简述c++语言的特点(优点)
1.C++在C语言基础上引入了面对对象的机制,同时也兼容C语言。2.C++有三大特性:①封装;②继承;③多态;3.C++语言编写出的程序结构清晰、易于扩充,程序可读性好。4.C++生成的代码质量高,运行效率高,仅比汇编语言慢10%~20%;5.C++更加安全,增加了const常量、引用、四类cast转换(static_cast、dynamic_cast、const_cast、reinterpret_cast)、智能指针以及try—catch等等;6.C++可复用性高,C++引入了模板的概念,后面在原创 2022-01-10 19:21:56 · 5524 阅读 · 0 评论 -
c++中struct和class的异同点
相同点:两者都可以用来定义类,也都可以继承不同点:1.class的默认继承权限和默认访问权限是私有的,而struct的默认继承权限和访问权限是共有的;2.class可以定义模板形参,例如:Template<class T, int i>,而struct不可以面试前,可以适当了解一下class,一般来说,我会比较喜欢用class,因为有模板,说起来也会比较轻松...原创 2022-01-09 18:17:34 · 372 阅读 · 0 评论 -
说一说c++中类成员的访问权限
c++通过三个关键字private、protected和public,来控制成员变量和成员变量的访问权限,也被称为成员访问限定符在类的内部(定义类的代码内部),成员是可以相互访问的,没有访问权限的限制;而在类的外部(定义类的代码之外),只能通过对象去访问成员,而且通过对象只能访问public属性的成员,不能访问protected和private属性的成员...原创 2022-01-09 18:00:37 · 1394 阅读 · 0 评论 -
什么是内存泄漏?
内存泄漏:由于疏忽或错误导致的程序未能释放已经不再使用的内存。进一步解释:并非指内存从物理上消失,而是指程序在运行过程中,由于疏忽或错误而失去了对该内存的控制,从而造成了内存的浪费。常指堆内存泄漏,因为堆是动态分配的,而且是用户来控制的,如果使用不当,会产生内存泄漏。使用 malloc、calloc、realloc、new 等分配内存时,使用完后要调用相应的 free 或 delete 释放内存,否则这块内存就会造成内存泄漏。指针重新赋值char *p = (char *)malloc(10);原创 2021-11-24 20:07:33 · 1151 阅读 · 0 评论 -
c++编译过程
编译过程分为四个过程:编译(编译预处理、编译、优化),汇编,链接。编译预处理:处理以 # 开头的指令;编译、优化:将源码 .cpp 文件翻译成 .s 汇编代码;汇编:将汇编代码 .s 翻译成机器指令 .o 文件;链接:汇编程序生成的目标文件,即 .o 文件,并不会立即执行,因为可能会出现:.cpp 文件中的函数引用了另一个 .cpp 文件中定义的符号或者调用了某个库文件中的函数。那链接的目的就是将这些文件对应的目标文件连接成一个整体,从而生成可执行的程序 .exe 文件。链接分为两种:静态链接原创 2021-11-24 19:57:12 · 4001 阅读 · 0 评论