avatar-decorate
爱刷题的小李 level
获赞
1637
粉丝
470
关注
2
看过 TA
1734
北京理工大学
2021
算法工程师
IP属地:北京
刷题,刷题,刷题,今天你刷题了吗!
私信
关注
1. push_back()左值和右值的区别是什么?2. move底层是怎么实现的?3. 完美转发的原理是什么?4. 空类中有什么函数?5. explicit用在哪里?有什么作用?6. 成员变量初始化的顺序是什么?7. 指针占用的大小是多少?8. 野指针和内存泄漏是什么?如何避免?9. malloc和new的区别是什么?10. 多线程会发生什么问题?线程同步有哪些手段?11. 什么是STL?12. 对比迭代器和指针的区别13. 线程有哪些状态,线程锁有哪些?14. 解释说明一下map和unordered_map15. vector中的push_back()和emplace_back()的区别、以及使用场景16. 如何实现线程安全,除了加锁还有没有其他的方式?17. vector扩容,resize和reserve的区别18. vector扩容为了避免重复扩容做了哪些机制?19. C++中空类的大小是多少?20. weak_ptr是怎么实现的?21. 虚函数的底层原理是什么?22. 一个函数f(int a,int b),其中a和b的地址关系是什么?23. 移动构造和拷贝构造的区别是什么?24. lamda表达式捕获列表捕获的方式有哪些?如果是引用捕获要注意什么?25. 哈希碰撞的处理方法26. unordered_map的扩容过程27. vector如何判断应该扩容?(size和capacity)28. 构造函数是否能声明为虚函数?为什么?什么情况下为错误?29. 类中static函数是否能声明为虚函数?30. 哪些函数不能被声明为虚函数?31. 如何保证类的对象只能被开辟在堆上?(将构造函数声明为私有、单例)32. 讲讲你理解的虚基类33. C++哪些运算符不能被重载?34. 动态链接和静态链接的区别,动态链接的原理是什么?35. C++中怎么编译C语言代码?答案附在面经中  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
游卡校园招聘部HR_主页内推:收藏了
查看35道真题和解析
0 点赞 评论 收藏
分享
1.我对贵公司还不太了解What ?!你对未来将要任职的公司是做什么的都不了解,只能说明你对这个公司和这个职位不重视。所以,在面试前一天,哪怕是临时抱佛脚,也要上网搜一下你所要面试的公司的概况。2.希望贵公司给我一个机会,我什么都愿意做在面试的过程中,不要过分放低自己。即便自己的处境十分糟糕,或者非常迫切地需要这份工作,也不要表现给面试官。因为这种表现在面试官看来是一种软弱和不自信。要知道,职位是“求”不来的。3.我真的很紧张面试时紧张是在所难免的,但是,千万不要直接说出口。面试最重要的就是要自信,要展示自己的优势,展现出自己可以胜任这个职位的一面。4.我希望能到贵公司锻炼自己公司不是学校。公司雇佣你是来做事的,而不是给你提供练手的机会的。要得到公司的认同,应该证明自己有能力为公司带来价值和利益。5.我之前的公司(领导或同事)很差劲面试时吐槽前任公司、领导、同事是非常愚蠢的。如果面试官这样引导你,一定是在考验你。你的吐槽,会给面试官留下态度消极的印象,没有公司会希望自己的员工整日散播负能量。6.我上一份工作压力太大了谁的工作没有压力呢?工作中来自领导、同事、客户的压力是再正常不过的事情了。化压力为动力也是一种职场必备技能,公司需要的是在压力之下仍能保持热情的人。7.我没有任何问题了通常情况下,在面试快要结束时,面试官经常会问“你还有什么问题要问吗?”。如果你回答“没有”,会让你显得没有主见,或者对这份工作或这家公司毫无兴趣。因此,在面试前事先准备几个通用问题,同时在面试过程中提炼一些问题,也是面试官考查你思维能力的环节8.我还有下一个面试好的,你比面试官还忙,你可以走了。最后呢祝各位同学工作顺利,关注我分享更多面试知识,嵌入式c++的同学可以看一下大佬总结的面经  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
NeverGonnaStop:转人工
0 点赞 评论 收藏
分享
1. C和C++的区别是什么?2. 如何理解封装、继承和多态?3. 多态的定义和实现方法是什么?4. 虚函数的作用及其实现原理是什么?5. 深拷贝和浅拷贝有什么区别?6. 如何实现虚函数和纯虚函数?7. 为什么要有纯虚函数?8. 为什么要有虚析构函数?9. 构造函数能否是虚函数?10. C++中构造函数能有返回值吗?11. 构造函数和析构函数能被继承吗?12. C++中Overload、Overwrite及Override的区别是什么?13. 一个空的class类里有什么?14. 一个空类的大小为什么是1?15. 一个结构体中有一个int,一个char,一个static int,问这个结构体占多少内存?16. 结构体与联合体的区别是什么?17. 函数与宏的差别是什么?18. 宏函数和inline函数的异同点是什么?19. #define 和 typedef 的区别是什么?20. 标准C++中的#include ""与<>的区别是什么?21. C++的内存管理机制是什么?22. C语言中的malloc/free和C++中的new/delete的区别和联系是什么?23. 迭代和递归的区别是什么?24. 不可操作的操作符有哪些?25. C++关键字mutable的作用是什么?26. 引用与指针有什么区别?27. 什么是黑盒测试和白盒测试?28. 你知道的类模版有哪些?29. new可以搭配free吗,为什么?30. C++异常的处理方式是什么?31. 如何查看内存泄漏?32. 内存泄漏的解决方案有哪些?33. 什么是内存溢出?34. 内存溢出的解决方案是什么?35. 函数指针与指针函数分别是什么?36. C++11的新特性有哪些?37. 接口和抽象类的区别是什么?38. struct和class的区别是什么?39. 预编译在做些什么事情?40. 可执行文件编译过程是什么?41. 动态库和静态库的区别是什么?42. 堆和栈的区别,以及为什么栈效率高?43. 栈的效率高的原因是什么?44. 函数参数压栈方式为什么是从右到左的?45. 请你来说一下C++中的智能指针。46. 基类里private成员函数可以声明为虚函数吗?47. const函数和非const函数可以实现重载吗?48. 函数A调用函数B的时候,有什么需要压栈?49. 数组和指针的区别是什么?50. 数组和链表的区别是什么?51. 双向链表和单向链表的区别是什么?52. vector的底层实现是什么?53. vector的resize()和reserve()方法有什么区别?54. vector与list的区别是什么?以上内容摘自牛客官方专刊《c++/嵌入式面经专栏》,该专刊不仅有真题讲解,还有经验分享,不清楚嵌入式该学什么的同学,想找嵌入式实习/正式工作的同学,都可以来看看:  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
0 点赞 评论 收藏
分享
1. C++中的智能指针有哪些?它们各自的特点是什么?2. 解释一下RAII(资源获取即初始化)的概念。3. C++中的const和constexpr有什么区别?4. 说说C++中的异常处理机制。5. 什么是多重继承?它有什么优缺点?6. 解释一下C++中的类型推导(auto关键字)。7. C++中的类型转换有哪些?分别有什么特点?8. 什么是内存对齐?它的重要性是什么?9. 解释一下C++中的模板元编程。10. C++中的friend关键字有什么作用?11. 说说C++11中的范围for循环(range-based for loop)。12. C++中的nullptr和NULL有什么区别?13. 解释一下C++中的析构函数的作用。14. C++中的虚析构函数有什么重要性?15. C++中的命名空间(namespace)有什么作用?16. 说说C++中的函数重载和运算符重载。17. C++中的std::function是什么?它的用途是什么?18. C++中的std::bind有什么作用?19. C++中的std::unique_ptr和std::shared_ptr有什么区别?20. 解释一下C++中的多态性。21. C++中的静态成员和非静态成员有什么区别?22. C++中的volatile关键字有什么作用?23. 说说C++中的标准库(STL)中的算法。24. C++中的构造函数初始化列表有什么作用?25. C++中如何实现接口(interface)?26. C++中的并发编程有哪些常用库?27. 说说C++中的数据结构选择和性能考虑。28. C++中的模板特化(template specialization)是什么?29. C++中的std::array和C风格数组有什么区别?30. C++中的动态数组和静态数组有什么区别?31. C++中的异常安全性(exception safety)是什么?32. C++中的lambda表达式的返回类型如何推导?33. C++中的std::optional是什么?它的用途是什么?34. C++中的std::variant是什么?如何使用?35. C++中的线程局部存储(thread-local storage)是什么?答案附在面经中  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
0 点赞 评论 收藏
分享
1. 什么是操作系统的内核?它的功能是什么?2. 描述操作系统中的文件系统结构。3. 什么是死锁?如何避免死锁的发生?4. 描述Linux中的信号量(Semaphore)及其应用。5. 什么是上下文切换?它的开销如何影响系统性能?6. 描述Linux中的虚拟内存机制。7. 什么是系统调用?如何使用系统调用进行文件操作?8. 描述嵌入式系统中的任务调度算法。9. 什么是中断?中断的类型有哪些?10. 描述RTOS中的时间片轮转调度。11. 什么是嵌入式系统中的看门狗定时器?它的作用是什么?12. 描述USB(通用串行总线)的工作原理。13. 什么是SPI(串行外设接口)?它的优缺点是什么?14. 描述I2C(串行外设接口)的工作原理。15. 什么是嵌入式系统中的闪存?与其他存储介质有何不同?16. 描述嵌入式系统中的GPIO(通用输入输出)接口。17. 什么是多线程编程?它的优势和挑战是什么?18. 描述Linux中的进程间通信(IPC)机制。19. 什么是内存泄漏?它的影响是什么?20. 描述操作系统中的缓存机制。21. 什么是网络拓扑?常见的网络拓扑类型有哪些?22. 描述TCP连接的三次握手和四次挥手过程。23. 什么是DHCP(动态主机配置协议)?它的作用是什么?24. 描述嵌入式系统中的实时任务调度策略。25. 什么是固件更新?它的过程是怎样的?26. 描述嵌入式系统中的电源管理策略。27. 什么是编译器?它的主要工作流程是什么?28. 描述嵌入式系统中的状态机实现方式。29. 什么是数据总线?它在计算机系统中的作用是什么?30. 描述网络安全中的***技术。31. 什么是加密货币?它的基本原理是什么?32. 描述嵌入式系统中的数据采集流程。33. 什么是网络协议?常见的网络协议有哪些?34. 描述嵌入式系统中的LCD显示原理。35. 什么是软件测试?常见的测试类型有哪些?36. 描述嵌入式系统中的音频处理。37. 什么是数据压缩?常见的压缩算法有哪些?38. 描述嵌入式系统中的传感器接口。39. 什么是网络延迟?它的影响因素有哪些?40. 描述嵌入式系统中的实时操作与非实时操作的区别。面经答案整理到专栏中  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
0 点赞 评论 收藏
分享
1. C++中的`friend`关键字有什么作用?2. 解释一下C++中的虚函数和纯虚函数的区别。3. C++中如何实现运算符重载?4. C++中的`static`成员函数和非静态成员函数有什么区别?5. C++中`const`和`constexpr`的区别是什么?6. 解释一下C++中的异常处理机制,包括`try`、`catch`和`throw`。7. C++中的`std::map`和`std::unordered_map`有什么区别?8. C++中如何实现一个多线程的生产者-消费者模型?9. C++中的`std::vector`和`std::list`的区别是什么?10. 解释一下C++中的模板元编程。11. C++中如何使用`std::mutex`进行线程同步?12. C++中的`decltype`关键字有什么用?13. C++中的`std::any`是什么?有什么用?14. 解释一下C++中的命名空间的作用和使用方法。15. C++中如何使用`std::shared_ptr`和`std::weak_ptr`解决循环引用问题?16. C++中的`std::string_view`有什么优势?17. C++中如何使用`std::for_each`算法?18. 解释一下C++中的类型转换和类型安全。19. C++中的`std::function`和函数指针有什么区别?20. C++中如何使用`std::thread`实现简单的多线程程序?21. C++中的`std::chrono`库有什么用?22. 解释一下C++中的动态内存分配和释放。23. C++中如何使用`std::array`实现固定大小的数组?24. C++中的`volatile`关键字有什么作用?25. C++中如何实现自定义的比较函数?26. C++中的`std::move`和`std::forward`的区别是什么?27. 解释一下C++中的默认参数和重载函数。28. C++中如何使用`std::transform`算法?29. C++中的`std::unique`和`std::remove`的区别是什么?30. C++中如何实现自定义的排序算法?31. C++中的`std::initializer_list`有什么用?32. 解释一下C++中的构造函数的初始化列表。33. C++中如何使用`std::copy`算法?34. C++中的`std::variant`和`std::any`有什么区别?35. C++中如何实现自定义的线程池?面经答案在专栏中  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
0 点赞 评论 收藏
分享
1.讲一下ARM架构的特点和优势。2.C语言中的volatile关键字的作用是什么?3.请解释一下嵌入式系统中的软中断和硬中断的区别。4.如何实现两个单片机之间的通信?请列举几种常用的通信协议。5.什么是RTOS(实时操作系统)?请解释RTOS和普通操作系统的区别。6.请解释一下UART和SPI的概念、特点和应用场景。7.在嵌入式系统中,编写驱动程序时,有哪些常见的接口标准和驱动框架?8.DMA(直接内存访问)是什么?它在嵌入式系统中的作用是什么?9.在嵌入式系统中,如何进行实时任务调度和优先级管理?10.请解释一下嵌入式系统中的中断嵌套和中断优先级的概念。11.请解释一下嵌入式系统中的GPIO口、PWM和定时器的概念和应用场景。12.在嵌入式系统开发中,什么是嵌入式Linux?它与传统的裸机系统有什么区别?13.讲一下C语言和C++语言的区别和特点。14.C语言中的指针是什么?请解释一下指针的作用和用法。15.C++中的引用是什么?请解释一下引用和指针的区别。16.什么是C语言中的结构体?请解释一下结构体的定义和使用。17.C++中的类是什么?请解释一下类的定义和面向对象的概念。18.在C语言中,如何动态分配内存?请解释一下malloc和free函数的使用。19.在C++中,如何实现多态性?请解释一下虚函数和纯虚函数的概念。20.C语言中的宏定义是什么?请解释一下宏定义的作用和用法。21.C++中的命名空间是什么?请解释一下命名空间的作用和用法。22.在C语言中,什么是文件操作?请解释一下文件的打开、读写和关闭操作。23.请解释一下操作系统中的进程间通信(IPC)和线程间通信的概念和方式。24.操作系统中的调度算法有哪些?请解释一下常见的调度算法和其特点。25.操作系统中的页表是什么?请解释一下页表的作用和实现方式。26.操作系统中的内核是什么?请解释一下内核的概念和功能。27.请解释一下操作系统中的异常和中断的区别和联系。28.请解释一下操作系统中的异常和中断的区别和联系。29.请解释一下操作系统中的同步和互斥的概念和实现方式。30.对于嵌入式开发工程师来说,如何进行持续学习和职业规划?问题答案已经整理到专栏中了,关注我分享更多知识。  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
0 点赞 评论 收藏
分享
1. C++中的构造函数和析构函数有什么区别?2. 解释一下C++中的拷贝构造函数和移动构造函数。3. C++中的模板是什么?它的优缺点是什么?4. C++中的静态成员与非静态成员有什么区别?5. 解释一下C++中的命名空间(namespace)。6. C++中如何实现一个简单的链表?7. C++中的虚函数表(vtable)是什么?8. C++中的异常处理机制是如何工作的?9. C++中如何使用std::thread创建和管理线程?10. 解释一下C++中的多态性及其实现方式。11. C++中的const修饰符有什么作用?12. C++中如何使用std::map和std::unordered_map?13. 解释一下C++中的函数重载和运算符重载。14. C++中如何实现一个简单的计数器类?15. C++中的内存泄漏是什么,如何防止?16. 解释一下C++中的智能指针的使用场景。17. C++中如何使用std::deque?18. C++中的范围for循环是什么,如何使用?19. C++中如何实现一个简单的状态模式?20. 解释一下C++中的动态内存分配和释放。21. C++中如何使用std::unordered_set?22. C++中的函数模板和类模板有什么区别?23. 解释一下C++中的类型限制(SFINAE)。24. C++中如何实现一个简单的二叉树?25. C++中的std::function有什么用?26. C++中如何使用std::condition_variable进行线程同步?27. 解释一下C++中的类型安全(type safety)。28. C++中如何实现一个简单的优先队列?29. C++中的std::string与C风格字符串有什么区别?30. 解释一下C++中的尾返回类型(trailing return type)。31. C++中如何使用std::tuple?32. C++中的可变参数模板(variadic templates)是什么?33. 解释一下C++中的委托构造函数(delegating constructors)。34. C++中如何实现一个简单的图遍历算法?35. C++中的std::shared_ptr与std::weak_ptr有什么关系?问题答案已经整理到专栏中了,关注我分享更多知识。  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
0 点赞 评论 收藏
分享
1. C++中的内存管理有哪些方式?各自的优缺点是什么?2. 什么是模板特化?有哪几种类型?3. 什么是智能指针的自定义删除器?如何实现?4. C++中如何实现多态?静态多态和动态多态有什么区别?5. C++11引入的“nullptr”是什么?与NULL有什么区别?6. 什么是拷贝控制(Copy Control)?包括哪些内容?7. C++中的“std::move”有什么作用?如何使用?8. 解释一下“类型擦除”(Type Erasure)的概念及其应用场景。9. C++中的“volatile”关键字有什么作用?如何使用?10. 什么是“内联函数”?它的优缺点是什么?11. C++中的“friend”关键字有什么作用?如何使用?12. 什么是构造函数初始化列表?它的好处是什么?13. C++中的“static”关键字在不同上下文中有什么不同的含义?14. 什么是“命名空间污染”?如何避免?15. C++中的“move语义”是什么?如何实现?16. 什么是“异常安全性”?如何设计异常安全的代码?17. C++中的“std::tuple”是什么?与其他容器有什么区别?18. 什么是“RAII”模式的应用场景?举例说明。19. C++中的“动态多态”是如何实现的?涉及到哪些关键字?20. 什么是“构造函数的委托”?如何使用?21. C++中的“static_assert”有什么作用?如何使用?22. C++中的“constexpr”函数有什么限制?23. 什么是“内存对齐”?如何在C++中处理内存对齐问题?24. C++中的“模板元编程”是什么?有什么应用?25. 什么是“析构函数的虚拟性”?为什么重要?26. C++中的“std::any”是什么?与其他类型的容器有什么区别?27. 什么是“基于范围的for循环”?如何使用?28. C++中的“多态”如何影响内存布局?29. C++中的“信号量”是什么?与条件变量有什么区别?30. 什么是“设计模式”?在C++中常用的设计模式有哪些?问题答案已经整理到专栏中了,关注我分享更多知识。  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
0 点赞 评论 收藏
分享
1. 描述操作系统的基本功能。2. 什么是进程调度?常见的进程调度算法有哪些?3. 描述Linux中的fork()和exec()函数的作用。4. 什么是线程安全?如何确保代码是线程安全的?5. 什么是内存页?页表的作用是什么?6. 描述Linux中的文件权限管理。7. 什么是缓冲区溢出?它的安全隐患是什么?8. 描述Linux中的文件描述符。9. 什么是信号?如何处理信号?10. 描述TCP和UDP的主要区别。11. 什么是网络协议栈?请简述其层次结构。12. 描述嵌入式系统的特点。13. 什么是实时操作系统(RTOS)?与普通操作系统有何不同?14. 什么是DMA(直接内存访问)?它的优点是什么?15. 描述STM32的定时器工作原理。16. 什么是Bootloader?它的作用是什么?17. 描述嵌入式系统中的中断处理过程。18. 什么是电源管理?在嵌入式系统中如何实现?19. 什么是固件?它与软件的区别是什么?20. 描述常见的通信接口(如UART、SPI、I2C)的特点。21. 什么是嵌入式操作系统的调度策略?22. 描述FreeRTOS中的消息队列机制。23. 什么是回调函数?它在嵌入式编程中的应用是什么?24. 什么是数据采样?在嵌入式系统中如何实现?25. 描述嵌入式系统中的PWM(脉宽调制)原理。26. 什么是ADC(模拟到数字转换器)?它的工作原理是什么?27. 描述如何在嵌入式系统中实现多任务处理。28. 什么是固态硬盘(SSD)?与传统硬盘有何区别?29. 描述操作系统中的内存管理策略。30. 什么是虚拟化技术?它的应用场景是什么?31. 什么是数据结构中的栈和队列?它们的应用场景是什么?32. 描述常见的排序算法(如冒泡排序、快速排序)的基本原理。33. 什么是图形用户界面(GUI)?它的组成部分是什么?34. 描述嵌入式系统中的实时性要求。35. 什么是网络安全?常见的网络攻击方式有哪些?36. 描述如何进行系统性能优化。37. 什么是数据加密?它的常见算法有哪些?38. 描述嵌入式系统中的调试方法。39. 什么是开源软件?它的优缺点是什么?40. 描述嵌入式系统中的状态机设计。面经答案在专栏中  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
0 点赞 评论 收藏
分享
1. C++中的虚函数和纯虚函数有什么区别?2. 解释一下C++中的多态性及其实现方式。3. C++中的友元函数和友元类有什么作用?4. 什么是C++中的模板元编程?5. C++中的std::map和std::unordered_map有什么区别?6. C++中如何实现运算符重载?7. C++中的异常处理机制是如何工作的?8. 什么是C++中的内存泄漏?如何避免?9. C++中如何实现自定义的排序算法?10. 解释一下C++中的强制类型转换和隐式类型转换。11. C++中的std::vector和std::list的区别是什么?12. C++中的析构函数和构造函数的执行顺序是什么?13. C++中如何使用智能指针避免悬空指针?14. C++中的std::string与std::wstring有什么区别?15. 解释一下C++中的动态多态性和静态多态性。16. C++中的static成员变量和static成员函数有什么特点?17. C++中如何使用std::shared_ptr的引用计数机制?18. 什么是C++中的命名空间污染?如何避免?19. C++中如何实现一个线程安全的队列?20. 解释一下C++中的条件编译。21. C++中的std::deque与std::vector有什么区别?22. 解释一下C++中的类型擦除。23. C++中如何使用std::function来存储可调用对象?24. 什么是C++中的智能指针循环引用问题?如何解决?25. C++中的std::array与std::vector的区别是什么?26. C++中如何实现自定义的异常处理机制?27. 解释一下C++中的移动构造和移动赋值。28. C++中的const成员函数有什么作用?29. C++中如何使用std::atomic实现原子操作?30. 解释一下C++中的动态库和静态库的区别。31. C++中如何实现自定义的比较器?32. C++中的std::unordered_set和std::set有什么区别?33. 解释一下C++中的内存池管理。34. C++中如何实现一个简单的状态机?35. C++中如何使用范围for循环(range-based for loop)?  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
0 点赞 评论 收藏
分享
1. vector的insert()和emplace()有什么区别?2. C++中的智能指针有哪些?各自的特点是什么?3. 解释一下C++中的RAII原则。4. 默认构造函数、拷贝构造函数和移动构造函数的区别是什么?5. C++中如何实现多重继承?存在哪些问题?6. 什么是构造函数委托?如何使用?7. 解释一下C++中的类型推导。8. C++中static和const的区别是什么?9. 解释一下C++中的命名空间。10. C++中的引用和指针有什么区别?11. C++中的const_cast、static_cast、dynamic_cast和reinterpret_cast的区别是什么?12. C++中如何实现单例模式?13. 解释一下C++中的虚析构函数的作用。14. C++中的内存对齐是什么?为什么重要?15. 如何实现一个线程安全的单例类?16. C++中如何处理异常?异常安全的保证是什么?17. C++中的析构函数执行顺序是什么?18. 解释一下C++中的模板特化。19. C++中如何使用std::bind和std::function?20. C++中的std::unique_ptr与std::shared_ptr的区别是什么?21. C++中如何使用std::tuple?22. 解释一下C++中的std::variant。23. C++中的lambda表达式的返回类型如何推导?24. C++中如何实现自定义的哈希函数?25. C++中的std::optional是什么?有什么用?26. 解释一下C++中的move语义和拷贝语义。27. C++中如何使用多线程库(如std::thread)?28. C++中的内存管理策略有哪些?29. C++中如何实现自定义的迭代器?30. C++中的std::array与C风格数组的区别是什么?31. C++中的volatile关键字有什么作用?32. C++中如何使用条件变量实现线程同步?33. 解释一下C++中的函数模板与类模板的区别。34. C++中的std::string与C风格字符串的区别是什么?35. C++中如何实现自定义的异常类?  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
查看35道真题和解析
0 点赞 评论 收藏
分享
一、后台服务器开发1.1 C++后台所需要具备的技能如果要从事C++后台服务器开发,那么先要了解C++后台服务器需要具备的技能。所需技能可以参考如下:软件基础(数据结构与算法,设计模式,C++新特性,Linux工程管理)高性能网络(网络编程,网络原理,协程,用户态协议栈)基础组件(池式组件,高性能组件,开源组件)中间件(MySQL,Redis,Nginx,MongoDB, Elasticsearch)开源框架(Skynet, DPDK, TARS)Rust(Rust特性, 网卡速度监控, OAuth2第三方登陆, tokio, Warp, hyper)性能分析(测试框架gtest以及内存泄漏检测, 火焰图的生成原理与构建方式)分布式架构(分布式消息, 分布式服务, 分布式API网关, 分布式存储)微服务( IM消息服务器/文件传输服务器, 消息服务器/路由服务器, 数据库代理服务器设计, 文件服务器和docker部署)二、云原生云原生其实是一套指导进行软件架构设计的思想。云原生的最大价值和愿景,就是认为未来的软件,会从诞生起就生长在云上,并且遵循一种新的软件开发、发布和运维模式,从而使得软件能够最大化地发挥云的能力。2.1 云原生的四要素微服务:几乎每个云原生的定义都包含微服务,跟微服务相对的是单体应用,微服务有理论基础,那就是康威定律,指导服务怎么切分,很玄乎,凡是能称为理论定律的都简单明白不了,不然就忒没b格,大概意思是组织架构决定产品形态,不知道跟马克思的生产关系影响生产力有无关系。微服务架构的好处就是按function切了之后,服务解耦,内聚更强,变更更易;另一个划分服务的技巧据说是依据DDD来搞。容器化:Docker是应用最为广泛的容器引擎,在思科谷歌等公司的基础设施中大量使用,是基于LXC技术搞的,容器化为微服务提供实施保障,起到应用隔离作用,K8S是容器编排系统,用于容器管理,容器间的负载均衡,谷歌搞的,Docker和K8S都采用Go编写,都是好东西。DevOps:这是个组合词,Dev+Ops,就是开发和运维合体,不像开发和产品,经常刀刃相见,实际上DevOps应该还包括测试,DevOps是一个敏捷思维,是一个沟通文化,也是组织形式,为云原生提供持续交付能力。持续交付:持续交付是不误时开发,不停机更新,小步快跑,反传统瀑布式开发模型,这要求开发版本和稳定版本并存,其实需要很多流程和工具支撑。三、音视频流媒体3.1 音视频流媒体所需要具备的技能音视频基础(FFMPEG环境搭建,音视频基础)FFMPEG编程(FFMPEG命令,音视频渲染,FFmpeg API,音视频编码,音视频封装格式,音视频过滤器,播放器开发,ffplay播放器,ffmpeg录制转码)流媒体(rtmp流媒体,hls流媒体,http-flv流媒体,RTMP/HLS/HTTP-FLV流媒体服务器,RTSP流媒体)WEBRTC(WebRTC中级开发,WebRTC高级开发,Janus服务器源码)3.2 音视频流媒体薪资情况3.3 音视频流媒体应用场景视频点播视频会议远程教育远程医疗短视频在线直播系统3.4 主流的流媒体协议主流的流媒体协议主要有: RTMP, HLS, RTSP等。3.5 音视频流媒体学习资料音视频开发-c/c++程序员的黄金方向(ffmpeg、webrtc、rtmp、rtsp、srs流媒体服务器...)_四、虚拟化4.1 虚拟化所需要具备的技能4.1.1 两种架构、三个知识点两种架构共享存储的传统架构SAN的"超融合"架构三个知识点在这两种架构中,主要用到三个设备:服务器、存储、网络交换机与光纤存储交换机,这对应计算、存储、网络三方面的知识。计算,是指服务器,要了解常用服务器的基础配置、最高配置(CPU、内存、硬盘接口与数量、单个硬盘支持的最大容量、网卡接口、速度,底层管理等),对项目中所需要用的服务器进行选择。存储,要了解常用存储的接口(iSCSI、SAS或FC)、配置(硬盘类型、数量)、支持的RAID、可扩充性、报价。网络,要了解常用网络交换机、光纤存储交换机的品牌、型号,了解网络交换机的速度、接口数量、可扩充性等。4.1.2 虚拟化系统集成(1)去企业机房,看总体,有多少机柜,每个机柜中有那些设备。机柜中是否有足够的空闲机位、网络剩余接头。(2)企业现有服务器与存储数量、配置,接口等。(3)网络拓扑,出口带宽,网络***、路由器、交换机等。4.1.3 硬件知识交换机、存储、服务器4.1.4 网络与软件知识了解TCP/IP协议、了解IP地址的分类、子网划分等内容。要了解华为交换机的基本配置(划分VLAN、配置LACP等)。掌握Windows的Active Directory的知识,掌握Windows Server中DHCP、DNS、Active Directory、证书、KMS的知识。4.1.5 熟悉vSphere产品安装、配置、故障排除vSphere 5.5系列:vCenter Server安装、ESXi安装、配置,创建虚拟机等。虚拟机备份、恢复。vSphere 6.0系列:vCenter Server安装、ESXi安装、VSAN、配置等。vSphere 6.5系列:vCenter Server、ESXi、vCenter HA、VSAN。Horizon View 桌面系列:Horizon View 7.0、6.0。VMware P2V工具、VMware VDP、vCops等。4.1.6 熟悉或精通VMware Workstation五、网络安全5.1 网络安全所需要具备的技能如果想做逆向,那么要掌握汇编如果想做数据库注入,那么要学SQL如果想做XSS,那么要学JavaScript如果想找驱动和内核的漏洞,那么要熟悉内核5.2 网络安全薪资情况5.3 网络安全应用场景园区门禁(网络隔离):工业***、工业网闸楼宇门禁(区域隔离):工业***办公室门禁(具体职能单元/主机安全):工业主机安全卫士摄像头安防系统(网络监测与告警):工业安全审计监测、网络入侵检测中控室控制大厅(安全管理、安全运维、安全审计):安管平台、日志审计、堡垒机车联网安全城市安全社区安全家庭安全移动应用安全5.4 网络安全前景价值网络安全为数字未来创造的价值。智能制造时代,工业大数据作为制造企业的核心资产之一,其重要性不言而喻。“工业4.0”浪潮下,制造企业加快了迈向“数字化”和“智能化”的步伐,以云计算、大数据、5G、人工智能为代表的新兴技术正在深度渗透至工业生产领域,在推动工业生产体系与运营模式升级的同时,也带来了新的网络安全挑战。网络安全公司最新发布的报告称,制造业企业已成为网络犯罪分子、勒索软件和国家黑客的首要目标。其中,61%的企业工厂发生过网络安全事件,其中3/4的网络攻击导致线下生产停摆。随着工业信息安全事件频发和政策标准的落地,单纯的工业信息安全防护产品已无法满足工业企业用户需求。同时,由于工业企业普遍缺乏对工业信息安全防护策略的落地能力,安全体系设计和规划服务需求应运而生。  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
寿司寄:那我还学个集贸
0 点赞 评论 收藏
分享
1. 移动构造函数和移动赋值运算符是什么?作用是什么?2. RAII(资源获取即初始化)是什么?如何实现?3. 模板是什么?类型参数和非类型参数有什么区别?4. 函数模板和类模板是什么?使用场景是什么?5. 异常处理机制怎样?如何使用try、catch和throw?6. Lambda表达式是什么?在C++11中作用是什么?7. std::function是什么?用途是什么?8. std::bind是什么?如何与Lambda结合使用?9. std::thread如何使用?如何管理线程的生命周期?10. 条件变量是什么?如何用于线程间的同步?11. std::unique_ptr和std::shared_ptr有什么区别?12. std::weak_ptr有什么作用?如何避免循环引用?13. std::array和C-style数组有什么区别?14. std::string和C-style字符串有什么区别?15. const_cast、static_cast、dynamic_cast和reinterpret_cast有什么区别?16. 多重继承会带来什么问题?如何解决?17. 虚继承是什么?解决了什么问题?18. 友元函数和友元类是什么?作用是什么?19. 命名空间是什么?作用是什么?20. 类型萃取(Type Traits)是什么?用途是什么?21. SFINAE(Substitution Failure Is Not An Error)是什么?22. constexpr是什么?作用是什么?23. std::variant是什么?与union有什么区别?24. std::optional是什么?使用场景是什么?25. std::deque和std::vector有什么区别?26. std::list和std::forward_list有什么区别?27. std::map和std::unordered_map的时间复杂度分别是多少?28. std::set和std::unordered_set的时间复杂度分别是多少?29. std::function和函数指针有什么区别?30. 智能指针如何避免内存泄漏?如何使用?问题答案已经整理到专栏中了,关注我分享更多知识。  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
查看30道真题和解析
0 点赞 评论 收藏
分享
### 1. 宏定义与预处理1.1 **宏定义是在编译的哪个阶段被处理的?**   - 答案:宏定义是在编译预处理阶段被处理的。   - 解读:编译预处理:头文件包含、宏替换、条件编译、去除注释、添加行号。1.2 **写一个"标准"宏MIN,这个宏输入两个参数并返回较小的一个。**   - 答案:     ```c     #define MIN(A, B) ((A) <= (B) ? (A) : (B))     ```   - 解读:     1. 注意用三重条件操作符,在宏中要小心地把参数用括号括起来,并且整个宏也要用括号括起来,防止替换时出现错误。     2. 注意若写`least = MIN(*p++, b);`这句代码会产生副作用,将`*p++`代入宏体,指针`p`会做两次自增操作。1.3 **已知数组table,用宏求数组元素个数。**   - 答案:     ```c     #define COUNT(table) (sizeof(table) / sizeof(table[0]))     ```   - 解读:`sizeof(table)`得到数组长度,`sizeof(table[0])`得到数组元素长度,两者相除即可得到数组元素个数。1.4 **带参宏和函数的区别?**   - (1) 带参宏只是在编译预处理阶段进行简单的字符替换;而函数则是在运行时进行调用和返回。   - (2) 宏替换不占运行时间,只占编译时间;而函数调用则占运行时间。   - (3) 带参宏在处理时不分配内存;而函数调用会分配临时内存。   - (4) 宏不存在类型问题,宏名无类型,它的参数也是无类型的;而函数中的实参和形参都要定义类型,二者的类型要求一致。   - (5) 使用宏定义次数多时,宏替换后源程序会变长;而函数调用不使源程序变长。### 2. 内联函数1.5 **内联函数的优缺点和适用场景是什么?**   - (1) 优点:内联函数与宏定义一样会在原地展开,省去了函数调用开销,同时又能做类型检查。   - (2) 缺点:它会使程序的代码量增大,消耗更多内存空间。   - (3) 适用场景:函数体内没有循环(执行时间短)且代码简短(占用内存空间小)。### 3. 关键字使用1.6 **关键字volatile的作用是什么?给出三个不同的例子。**   - (1) 作用:告诉编译器不要去假设(优化)这个变量的值,因为这个变量可能会被意想不到地改变。   - (2) 例子:     1. 并行设备的硬件寄存器(如:状态寄存器)。     2. 一个中断服务子程序中会访问到的非自动变量。     3. 多线程应用中被几个线程共享的变量(防止死锁)。1.7 **如何用C语言实现读写寄存器变量?**   - 答案:     ```c     #define rBANKCON0 (*(volatile unsigned long *)0x48000004)     rBANKCON0 = 0x12;     ```   - 解读:     1. 由于是寄存器地址,所以需要先将其强制类型转换为 "volatile unsigned long *"。     2. 由于后续需要对寄存器直接赋值,所以需要解引用。1.8 **下面代码能不能编译通过?**   ```c   #define c 3     c++;   ```   - 答案:不能。   - 解读:自增运算符`++`用于变量,3是常量。1.9 **"在C语言中,凡是以#开头的都是预处理命令,同时预处理命令都是以#开头的",这句话是正确的吗?**   - 正确。1.10 **预处理器标识#error的作用是什么?**   - 答案:编译程序时,只要遇到 `#error` 就会跳出一个编译错误。   - 解读:当程序比较大时,往往有些宏定义是在外部指定的,当你不太确定当前是否定义了 XXX 时,可写如下预处理代码:     ```c     #ifdef XXX       #error "XXX has been defined"       #else       …       #endif       ```1.11 **用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)。**   - 答案:     ```c     #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL     ```   - 解读:     1. 注意预处理器将为你计算常数表达式的值,并且整个宏体要用括号括起来。     2. 注意这个表达式将使一个16位机的整型数溢出,因此要用到无符号长整型符号UL。1.15 **关键字typedef的作用?**   - (1) `typedef`更好。   - (2) 举个例子:     ```c     #define dPS struct s *     typedef struct s * tPS; //(顺序、分号、#号)     ```     第一行代码扩展为 `struct s * p1, p2;`,即定义`p1`为一个指向结构体的指针,`p2`为一个实际的结构体,这也许不是你想要的。第二行代码正确地定义了`p3`和`p4`两个指针。1.16 **关键字sizeof的作用是什么?函数strlen()呢?**   - (1) `sizeof`关键字用来计算变量、数据类型所占内存的字节数。   - (2) 而`strlen()`函数则用来测试字符串所占字节数,不包括结束字符。1.17 **关键字extern的作用是什么?**   - 答案:用于跨文件引用全局变量,即在本文件中引用一个已经在其他文件中定义的全局变量。   - 解读:     1. 注意引用时不能初始化,如`extern var`,而不能是`extern var = 0`。     2. 另外,函数默认是extern类型的,表明是整个程序(工程)可见的,加不加都一样。1.18 **extern"C"的作用?**   - 答案:     (1) 在C++代码中调用C函数。     (2) 在C代码中调用C++函数,注意:`extern"C"`只能用于C++文件中。1.19 **关键字auto的作用是什么?**   - 答案:用来定义自动局部变量,自动局部变量在进入声明该变量的语句块时被建立,退出语句块时被注销,仅在语句块内部使用。1.20 **关键字register的作用是什么?使用时需要注意什么?**   - (1) 作用:编译器会将`register`修饰的变量尽可能地放在CPU的寄存器中,以加快其存取速度。   - (2) 注意:`register`变量可能不存放在内存中,所以不能用`&`来获取该变量的地址;只有局部变量和形参可以作为`register`变量。1.21 **C语言编译过程中,关键字volatile和extern分别在哪个阶段起作用?**   - 答案:`volatile`在编译阶段,`extern`在链接阶段。1.22 **const与#define的异同?**   - (1) 异:`const`有数据类型,编译器可以做静态类型检查;而宏定义没有类型,可能会导致类型出错。   - (2) 同:两者都可用来定义常数。以上内容摘自牛客官方专刊《c++/嵌入式面经专栏》,该专刊不仅有真题讲解,还有经验分享,不清楚嵌入式该学什么的同学,想找嵌入式实习/正式工作的同学,都可以来看看:  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
查看19道真题和解析
0 点赞 评论 收藏
分享
1. 解释C++中的内存管理机制(如堆和栈)。2. 描述C++中的拷贝构造函数和赋值运算符的作用及其区别。3. 什么是RAII?如何在C++中实现?4. 解释虚函数和虚表的原理。5. 描述C++中的构造函数和析构函数的作用和特点。6. 说明C++中的多重继承及其可能带来的问题。7. 什么是模板?如何在C++中定义和使用模板?8. 解释C++11中的`auto`关键字的使用场景和优势。9. 描述C++11中的`nullptr`的作用以及它与`NULL`的区别。10. 解释C++11中的智能指针`unique_ptr`的使用方法及其优缺点。11. 解释C++11中的`shared_ptr`的工作原理及其常见用法。12. 如何在C++中实现自定义异常处理?13. 描述C++中的`std::move`和`std::forward`的用途及其区别。14. 解释C++中的`enum`类与传统`enum`的区别。15. 什么是C++中的“函数对象”?如何定义和使用它们?16. 描述C++中的`std::function`和`std::bind`的功能和应用。17. 解释C++中的类型推导(type deduction)机制及其使用方法。18. 解释`static`关键字在类中的作用。19. 什么是C++中的“完美转发”?如何实现?20. 解释C++中的`constexpr`关键字及其用法。21. 描述C++中的`inline`函数及其优化作用。22. 什么是C++中的“左值引用”和“右值引用”?如何使用?23. 解释C++中的“移动构造函数”和“移动赋值运算符”。24. 描述C++中的“异常安全性”及其分类。25. 什么是C++中的“类模板”与“函数模板”?有什么区别?26. 解释C++中的“非类型模板参数”及其应用。27. 如何在C++中实现和使用“虚继承”?28. 描述C++中的“动态多态”和“静态多态”的区别。29. 什么是“C++中的拷贝控制”?如何自定义拷贝控制?30. 解释C++中的“友元函数”及其用途。31. 描述C++中的“析构函数”以及如何避免“资源泄漏”。32. 如何使用C++中的“`std::thread`”类进行多线程编程?33. 解释C++中的“`std::mutex`”和“`std::lock_guard`”的作用及其用法。34. 什么是C++中的“C++17”新特性?举例说明。35. 解释C++中的“`decltype`”关键字及其用途。问题答案已经整理到专栏中了,关注我分享更多知识。  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
查看35道真题和解析
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务