C++开发面试题
文章平均质量分 61
haimianjie2012
专注AI Complier,异构并行计算,HPC高性能计算,计算机视觉,深度学习和机器学习,C++开发;也写一些随笔读书笔记,面试题解析和求职攻略
展开
-
腾讯游戏服务器外包二面
在轮盘赌算法中,首先计算所有元素的权重之和,然后生成一个随机数r,将其乘以总权重,然后遍历数组,每次减去当前元素的权重,直到r小于零为止。此时,返回的就是当前元素的索引。C++实现,实现一个函数生成GUID(64位整数全局唯一),这个函数可能在多个机器上运行,每个机器上可能又多个进程跑这个函数,保证每个程序跑出来的GUID一定是唯一的。C++实现,给定一个数组,数组元素的值就是他的权重,总权重是所有元素权重纸盒,写一个函数,根据根据权重返回随机值,每个元素出现次数符号权重的概率分析。原创 2023-07-05 15:28:27 · 585 阅读 · 0 评论 -
携禾生物面试总结
携禾生物面试,岗位C++原创 2023-03-03 18:54:09 · 650 阅读 · 0 评论 -
你真的懂动态库吗?一文详解动态库的方方面
不同程序使用相同的动态库,动态库在内存中只有一份实例,可以实现进程之间资源共享。静态库采用静态链接方式,在程序链接阶段,静态库与汇编生成的目标文件一起打包到程序可执行文件*.exe中。当一个静态库A被多个程序使用时,每个程序都会有A的一个拷贝,比较浪费空间。动态库在编译时并不会被链接到目标代码中,而是在程序运行的时候才被载入。静态库对函数库的链接是在编译阶段完成的,运行时与函数库没有关系了。静态库的lib叫做静态库,动态库里面的lib叫做导入库。静态库的lib和动态库的lib不是一个概念,原创 2023-02-28 12:51:17 · 1123 阅读 · 0 评论 -
一文了解什么是字节对齐(超详细)
字节对齐原则,结构体字节对齐原创 2023-02-23 20:25:30 · 4975 阅读 · 0 评论 -
华为机试2刷笔记
Algorithms 是Template库,处理某范围元素的函数,例如 for_each (对每个做…), count (统计出现的个数),partition (分两部分)。unique()是C++标准库函数里面的函数,其功能是去除相邻的重复元素(只保留一个),所以使用前需要对数组进行排序。math.h 是常用的数学库。cout的成员函数fill设置输出宽度不够时,填充字符’0’其中的方法使用的是set,这两个场景有什么不同?cout的成员函数width()设置输出的宽度。流操作符left指定左对齐。原创 2023-01-17 23:44:31 · 740 阅读 · 0 评论 -
C++面试题合集.操作系统系列
1:谈谈内存分配中的(.data)段和(.bss)段的区别?为什么要分.data段和.bss段?data段:存放已经初始化的全局变量和静态变量。在给已经初始化的全局变量和静态变量分配内存空间,数据保存在目标文件中。Bss段Bss(block started by Symbol)存放没有初始化的全局变量和静态变量,在编译器编译的时候不会给数据分配空间,只是记录数据所需空间大小。程序执行的时候在分配内存并清零。为什么要分.data段和.bss段在程序编译的时候,不会给.bss段的数据分配空间,只是记原创 2021-12-16 16:02:36 · 1298 阅读 · 0 评论 -
C++面试题合集.C++基础系列
16.编写类String的构造函数、析构函数和赋值函数,已知类String的原型为:2.计算sizeof的值Func(char str[100])函数中数组名作为函数形参时,在函数体内,数组名失去了本身的内涵,仅仅只是一个指针;在失去其内涵的同时,还失去了其常量特性,可以作自增、自减等操作,可以被修改。数组名的本质:1)数组名指代一种数据结构,这种数据结构就是数组;Char str[10];Cout<<sizeof<<endl;//102)数组名可以转换为指向其指代实体原创 2021-12-16 15:52:02 · 992 阅读 · 0 评论 -
C++校招面试题合集
多路io复用线程状态C++内存分布函数运行过程数组和链表的区别红黑树与哈希表的优劣用过linux吗?gdb了解吗手撕代码:实现memcpy浏览器访问网站用到哪些协议new 与 malloc的差别?有一个mxn的网格,每次只能向右或向下走,每次最多走两步,从左上角走到右下角有多少种走法?操作系统125.epoll实现原理Linux epoll机制是通过红黑树和双向链表实现的。 首先通过epoll_create()系统调用在内核中创建一个eventpoll类型的句柄,其中包括红黑树根节原创 2021-12-16 15:18:07 · 1496 阅读 · 0 评论 -
超全的C++开发工程师面经
作者:听海201801261006272链接:https://www.nowcoder.com/discuss/235042?type=post&order=time&pos=&page=2&channel=-1&source_id=search_post_nctrack&subType=2来源:牛客网【C++】百度三面:https://www.nowcoder.com/discuss/114792【C++】百度C++面试 一/二面 面经:http.原创 2021-12-16 14:49:52 · 2325 阅读 · 0 评论 -
C++客户端面经总结
富途 C++客户端开发 一二三面作者:zjk_链接:https://www.nowcoder.com/discuss/506826?type=post&order=time&pos=&page=1&channel=-1&source_id=search_post_nctrack&subType=2来源:牛客网一面自我介绍A=0,两个线程for循环对A进行加一,问两个线程运行完后A的值原子操作TCP三次握手,如果去掉最后一次会怎么样手撕代码原创 2021-12-16 14:47:18 · 2330 阅读 · 0 评论 -
面试题(60)|STL(6):map常见面试题和用法总结
常见面试题请你说一说C++两种map请你说一说stl里面set和map怎么实现的请你说一说STL迭代器是怎么删除元素的呢请你说一说STL中MAP数据存放形式请你说说STL中map与unordered_map请你来说一下map和set有什么区别,分别又是怎么实现的?用法小结https://www.cnblogs.com/heyonggang/p/3244077.htmlhttps://blog.csdn.net/haimianjie2012/article/details/108070929原创 2021-11-23 15:46:23 · 1244 阅读 · 0 评论 -
pthread_create创建线程如何传参
pthread_create如何传参PthrreadParams定义struct PthreadParams { CreateVTKAndPVDFile* pThis; int myid; /* *其它相应的参数 省略 **/};pthread_create传参 PthreadParams* params=new PthreadParams[MAXTHREADS]; for (int i = 0; i < thread_nums; i++) { par原创 2021-09-07 18:05:37 · 373 阅读 · 0 评论 -
一个C++程序员关于多线程的总结
多线程面试题一份多线程面试题及参考答案华为机试:HJ49,多线程华为机试:HJ49,多线程华为机试:HJ49多线程windows版本答案你用过线程池吗?如何实现多线程无锁同步多机数据处理有 10 台机器,每台机器上保存着 10 亿个 64-bit 整数(不一定刚好 10 亿个,可能有上下几千万的浮动),一共约 100 亿个整数(其实一共也就 80GB 数据,不算大,选这个量级是考虑了 VPS 虚拟机的容量,便于实验)。编程求出:这些数的平均数。这些数的中位数。出现次数最多的 100原创 2021-08-17 11:22:35 · 233 阅读 · 0 评论 -
牛客网腾讯C++客户端面试总结
腾讯C++客户端面试经验静态存储区、编译链接 陈硕 book《》线程池知道吗?智能指针,智能指针是线程安全的吗?二叉树的右视图二叉树序列化和反序列化正则表达式匹配C++ lambda表达式使用方法,实现原理友元类https://blog.csdn.net/qq_33336155/article/details/53859214?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBai原创 2021-08-09 15:54:18 · 325 阅读 · 0 评论 -
面试题(59)|计算机基础(4):CPU中断的工作原理
CPU中断的工作原理前言使用线程切换及状态管理、异常处理、硬件与处理器的交互、I/O操作等指令时,都会使用中断服务。处理器基于硬件封装对外的指令集==》底层语言封装指令集提供简单的抽象===》高级语言基于底层语言赋予程序更明确的语义。在这条关系链条上,下层变动会影响到上层;上层想要提高效率,改变机制必须得到下层的支持。什么是中断中断是为了顺应人们对实时性交互的需求而产生的技术。中断之所以有用,是因为它会立刻停下当前的程序去做另一件事情。什么是实时性交互?点击鼠标或键盘时,计算机立即反馈处理结原创 2021-08-03 15:14:24 · 1370 阅读 · 0 评论 -
面试题(58)|操作系统(6):什么是内核对象(资源)
什么是内核对象 常见内核对象 存取符号对象,时间对象,文件对象,文件映射对象 I/O完成端口对象,作业对象,信箱对象,互斥对象,管道对象 进程对象,信标对象,线程对象和等待计时器对象 内核对象本质 内核对象时内核分配的一个内存块,并且该内存块只能被内核访问 该内存块是一种数据结构,它的成员负责维护内核对象的各种信息 有些数据成员(如安全性描述符,使用计数)在所有内核对象中是相同的;但大多数数据成员...原创 2021-07-23 19:34:12 · 329 阅读 · 0 评论 -
面试题(57)|操作系统(5):用户态和内核态的区别
用户态和内核态区别 1.操作系统的两种CUP状态 内核态:运行操作系统程序,操作硬件 用户态:运行用户程序 2.指令划分 特权指令 只能是操作系统使用,而用户程序不能使用的指令 启动I/O,内存清零,修改程序状态字,设置时钟,允许/禁止终端,停机 非特权指令 用户可以使用的指令 控制转移,算数运算,取数指令,访管指令(使用户程序从用户...原创 2021-07-23 19:09:39 · 867 阅读 · 0 评论 -
面试题(56)|计算机基础(3):32位程序与64位程序有什么不同
1.x86-64的历史和动因字长要从汇编语言的角度理解,就是指令集里面的运算和内存操作时操作数的长度。比如你写一条load a, reg1,那么a这个操作数的长度就是字长。32位机的字长最大是32bit,64位机的字长最大是64bit。机器的字长定义了程序能够使用的虚拟地址范围,32位字长就是4GB虚拟地址空间。指令体系结构I32是32位字长,因此程序能够使用的最大虚拟地址范围是4GB。然而,现在的机器很容配置4GB以上的RAM(随机访问存储器),4GB以外的内存就得不到有效利用。==》原创 2021-07-23 16:30:06 · 738 阅读 · 2 评论 -
腾讯windows C++ 客户端面试经验
背景介绍面试时间:2021年7月23日面试岗位:windows c++ 客户端岗位要求:计算机相关专业本科及以上学历,3年以上Windows开发经验; 具备良好的C/C++编程能力,具有良好的编程风格和快速开发的能力; 具备良好的学习能力和分析解决问题能力,以及对外沟通和团队协作的能力; 对技术有热情,积极性高,责任心强; 熟练使用VC,了解Windows界面实现机制,熟悉DUI优先考虑; 深入理解Windows操作系统的内存管理,文件系统,进程/线程调度; 具备丰富的软件开原创 2021-07-23 14:23:23 · 2311 阅读 · 1 评论 -
面试题(55)|STL(5):vector删除指定值的元素
1.删除说有满足条件的元素1.1 remove()remove由定义在 algorithm 头文件中的模板生成,所以要用它需要加上头文件#include<algorithm>。STL中remove()只是将待删除元素之后的元素移动到vector的前端,而不是删除。若要真正移除,需要搭配使用erase(),才能真正删除。#include <iostream>#include <vector>#include < algorithm >.原创 2021-07-16 18:56:01 · 4141 阅读 · 1 评论 -
牛客网系列:精华专题,校招面试题目合集,面经
L1不可导的时候该怎么办?原创 2020-03-17 09:15:03 · 1159 阅读 · 0 评论 -
深圳蓝韵医学影像C++开发面试总结
2017年8月1日,上午,白石洲到宝安石岩蓝韵科技园深圳蓝韵医学影像公司,392区间线可以直达。进入公司,首先是填写一份资料表格,然后面试,面试时有两个面试官,一个老的,估计是技术总监,另外一个是面技术的,很年轻,感觉跟我同龄,应该是个项目经理。 技术总监首先问,桂电毕业的哈,然后两个面试官就说,桂电的学生不错,学校教的东西很实用,**点名要推荐桂电的,那家公司招了几个人都是桂电的,技术都还不错…原创 2017-08-02 10:28:27 · 2638 阅读 · 1 评论 -
牛客网C++开发面试经验汇总
【c++】深信服一面C++ https://www.nowcoder.com/discuss/229218【c++】我真的太难了..深信服一面凉面 https://www.nowcoder.com/discuss/228876【c++】深信服 一面 可能是凉经 https://www.nowcoder.com/discuss/225929【c++】深信服C++凉筋 https://www.nowcoder.com/discuss/226196【c++】深信服电话面试一面二面(菜鸡没有三面)原创 2021-06-07 09:45:15 · 2386 阅读 · 0 评论 -
面试题(52)|数据结构(23)写一个复数类或者大整数类,实现基本的加减乘运算,熟悉封装与数据抽象
shixian#include <iostream>using namespace std;int main(){ std::cout << "Hello World!\n"; string a = "11000"; string b = "1011"; reverse(a.begin(), a.end()); reverse(b.begin(), b.end()); cout << "a:" << a.c_str() &.原创 2021-06-03 10:49:52 · 120 阅读 · 0 评论 -
面试题总结|all
85.A* a = new A; a->i = 10;在内核中的内存分配上发生了什么?原创 2021-05-29 18:49:15 · 67 阅读 · 0 评论 -
面试题(54)|计算机网络(1):计算机网络之TCP与UDP
TCP与UDP的区别与各自的应用场景TCP与UDP谁的吞吐量大参考文献:为什么TCP比udp在广域网上测得的吞吐量要差?https://iask.sina.com.cn/b/iR2q6ioTnOz3.htmltcp与udp哪个并发性能更好原创 2021-03-02 18:38:24 · 149 阅读 · 0 评论 -
面试题(51)|C/C++基础(15)全局变量与静态变量的区别
原创 2021-02-05 09:24:44 · 181 阅读 · 0 评论 -
面试题(53)|计算机基础(2):Linux x86与arm区别
处理器通常是指一台计算机的运算核心和控制核心。英特尔是PC和企业级处理器市场上毋庸置疑的霸主,ARM则是在移动终端市场发展起来的新兴霸主。英特尔专注高性能,为个人用户、企业用户提供出色的性能支持;而ARM则专注低功耗,为手机和平板用户带来超长待机。ARM为了满足数据中心需求:低功耗是ARM处理器的一个优势,但是在面向企业级领域的时侯,其发现并没有64位架构处理器,于是在2012年10月31日ARM推出新款ARMv8架构ARMCortex-A50处理器系列产品,来满足企业级级市场应用的需求。原创 2021-02-04 15:23:16 · 394 阅读 · 2 评论 -
面试题(50)|C/C++基础(14):C++内存回收功能怎么实现?
先看看《Effective C++》对资源管理的讲解:内存回收使用shared_ptr类其他资源回收自定义资源管理类实现一个互斥锁的资源管理类Lock,这里分两个版本实现,Lock1对象禁止复制,Lock2可以允许复制,复制增加资源的引用计数。禁止复制版Lock1引用计数版Lock2...原创 2021-02-03 21:54:18 · 477 阅读 · 0 评论 -
面试题(49)|STL(4):STL仿函数
C++面试题系列:STL原创 2021-02-02 22:27:25 · 194 阅读 · 0 评论 -
面试题(48)|STL(3):使用过哪些容器,底层如何实现的?
容器包括序列式容器和关联式容器。序列式容器vectorvector初始化默认多大?默认为1,每次扩容在现有大小基础上乘以2。list关联式容器原创 2021-02-02 11:31:40 · 343 阅读 · 0 评论 -
面试题(47)|C/C++基础(13):c++11新特性,lambda表达式使用方法,实现原理
提供了一个类似匿名函数的特性,匿名函数就是在需要一个函数,但是又不想费力去命名一个函数的情况下使用的。基本语法:[caputrue](params)opt->ret{body;};capture是捕获列表params是参数表;选填opt:函数选项;可以填mutable,exception,attribute(选填)。mutable:说明lambda表达式内的代码可以修改被捕获的变量,并且可以访问被捕获的non-const方法;exception:说明lambda表达式是否抛出异常原创 2021-01-25 09:36:12 · 640 阅读 · 0 评论 -
面试题(46)|软件工程(3)设计模式之工厂模式
工厂模式属于创建型模式创建型模式的关注点是“怎样创建对象”,他将对象的创建与使用分离。这样做可以降低系统的耦合度,使用者不需要关系对象创建的细节,对象的创建工作由相关工厂来完成。由上图可知,创建型模式分为以下几种。单例(Singleton)模式:某个类只能生成一个实例,该类提供了一个全局访问点供外部获取该实例,其拓展是有限多例模式。 原型(Prototype)模式:将一个对象作为原型,通过对其进行复制而克隆出多个和原型类似的新实例。 工厂方法(FactoryMethod)模式:定义一个用原创 2021-01-21 07:25:18 · 217 阅读 · 1 评论 -
面试题(45)|数据结构(22):判断链表是否有环,有关单链表环的问题
1.判断给定的链表中是否有环。如果有环则返回true,否则返回false2.对于一个给定的链表,返回环的入口节点,如果没有环,返回null1.判断给定的链表中是否有环。如果有环则返回true,否则返回false解法一:快慢指针法两个指针fast和slow,开始的时候两个指针都指向链表头head,然后在每一步操作中slow向前走一步即:slow = slow->next,而fast每一步向前两步即:fast = fast->next->next。由于fast要比s..原创 2021-01-20 12:02:59 · 216 阅读 · 0 评论 -
面试题(44)|数据结构(21):写一个字符串类,熟悉内存管理与拷贝控制
编写类String的构造函数、析构函数和赋值函数,已知类String的原型为:class MString{public: MString(const char *str = NULL); // 普通构造函数 MString(const MString &other); // 拷贝构造函数 ~MString(void); // 析构函数 MString & operator =(const MString &other); // 赋值函数 privat原创 2021-01-12 10:33:42 · 172 阅读 · 2 评论 -
面试题(43)|操作系统(4):怎样实现无锁线程同步
参考文献:透过 Linux 内核看无锁编程原创 2021-01-09 17:50:41 · 467 阅读 · 0 评论 -
数据结构总结之图
1.起因为什么要总结图,因为两次华为面试过程中,因为有关图的面试题都回答不上来。问题一:什么是深度优先什么是广度优先,最短路径使用的是深度优先还是广度优先。问题二:什么是拓扑排序?怎么实现?2.图的定义领接矩阵typedef struct { int edges[MaxSize][MaxSize]; int n, e;//n顶点数,e边数 int vex[MaxSize];//节点信息,顶点编号}MGraph;领接表//领接表定义typedef struc.原创 2021-01-07 14:22:59 · 189 阅读 · 0 评论 -
面试题(42)|操作系统(3):goole面试题:有四个线程1、2、3、4。线程1的功能就是输出1,线程2的功能就是输出2,以此类推.........现在有四个文件ABCD
有四个线程1、2、3、4。线程1的功能就是输出1,线程2的功能就是输出2,以此类推.........现在有四个文件ABCD初始都为空。现要让四个文件呈如下格式:A:1 2 3 4 1 2....B:2 3 4 1 2 3....C:3 4 1 2 3 4....D:4 1 2 3 4 1....请设计程序。...原创 2020-12-16 10:30:07 · 365 阅读 · 0 评论 -
面试题(41)|数据结构(20):写一个表达式计算器,实现一个节点类的继承体系如图B-1右,体会面向对象编程
更多C++学习经验,从《C++ Primer》入手学习C++写一个表达式计算器,实现一个节点类的继承体系如图B-1右,体会面向对象编程简单版NC137:表达式求值数据结构介绍的逆波兰表达式法https://www.cnblogs.com/lulipro/p/7450886.html#include <iostream>#include <stack>using namespace std;stack<int> nums;stack<原创 2020-12-14 17:48:57 · 190 阅读 · 0 评论 -
面试题(40)|数据结构(19):NC116_把数字翻译成字符串(动态规划)
目录题目描述:题解:类似题目比较参考文献:题目描述:题解:动态规划状态转移方程:如果c(i-1,i)==10或20,dp[i]=dp[i-2]如果11<=c(i-1,i)<=19,21<=c(i-1,i)<=26时,dp[i]=dp[i-1]+dp[i-2]其他,dp[i]=dp[i-1]其中,dp(i) 表示数字从左往右第 i 个的翻译种数,c(i-1, i) 表示数字从左往右第 i - 1 和第 i 个字符拼接后的数字(原创 2020-12-08 17:29:05 · 209 阅读 · 0 评论