| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C++面试知识笔记 -> 正文阅读 |
|
[C++知识库]C++面试知识笔记 |
C++面试必备????????1、C++中如何调用C语言代码 可以通过extern关键字进行设置,将.c文件按照编译c文件的方式编译
2、值、指针、引用传递区别 1、传值是函数的形参拷贝值的过程,将传入的值(可能为类或者结构体)等拷贝存储在栈上,这样会消耗一定的空间。 2、?传指针是形参向函数所属的栈拷贝数据的过程,但传入的是四字节的指针地址。 3、传引用是形参的数据拷贝过程,其相当于为数据所在的地址起了一个别名。从效率上看传指针和引用效率高,传值消耗空间和时间,效率低。 3、进程的通信方式 进程的通信方式有:信号量、管道、命名管道、共享内存、套接字、信号、消息队列 管道:半双工通信,数据单向传输,仅在父子进程间使用;但命名管道可以在无亲子间的进程通信 共享内存:能够被其他任何进程访问的内存空间,由一个进程创建可以实现多个其他进程的访问,一般配合信号量等配合使用。 信号量:是一个计数器,一般作为锁使用,可以控制多个进程对共享内存的访问。 套接字:常用的进程间的通信方式;信号:用于通知进程某事件发生。 消息队列:是一个消息的链表。可以把消息看作一个记录,具有特定的格式以及特定的优先级。有写权限的进程可以向消息队列中添加新消息;有读权限的进程则可以从消息队列中读走消息。(引自csdn博主:ve2102388688) 4、http和https的区别 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。 为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。(引自:博客园的博主:爱哭的蛙蛙) 5、STL的内存配置器 stl的内存管理一般通过默认的allocator来实现,不过也可以通过自定义的allocator实现(通过allocator模板定义的接口实现即可)。stl的内存分配分为两级分配器,一级分配器申请的内存大于128byte,通过malloc向系统的堆中分配内存;当所申请的内存小于128byte时,启动二级分配器,从预先分配好的内存池中取出一块最合适的交付出来。这个内存池由16个不同大小(8的倍数,8~128byte)的空闲列表组成,这样allocator会根据申请的内存大小选择相应的最接近的内存分配出来。 6、HTTPS工作流程 ???来自简书:一杯刘,链接:https://www.jianshu.com/p/a68ca86183d7
????死锁是两个或者多个进程在执行进程中,由于系统资源竞争或者通信而造成的阻塞现象,此时系统两个或者多个进程处于等待对方释放资源等现象称为死锁。 ????死锁的四个必要条件:互斥条件(进程分配的资源防止其他进程请求使用)、请求与保持条件(所请求的资源处于其他进程汇总,进程请求处于阻塞,自身获得的资源保存不释放)、循环等待条件(循环等待请求在其他进程中的资源释放)、不可剥夺条件(进程所获得资源不能被其他进程夺走)。 1、占有部分资源的线程进一步申请其他资源时,如果申请不到,主动释放它占有的资源。 2、分配每个进程所需的全部资源。 2、具有相同的加锁顺序。如果多个线程需要对多个?Lock?进行锁定,则应该保证它们以相同的顺序请求加锁 3、使用定时锁。程序在调用?acquire()?方法加锁时可指定?timeout?参数,该参数指定超过?timeout?秒后会自动释放对?Lock?的锁定 8、map?和?unordered_map?的区别 map的底层原理是使用红黑树实现的,红黑树可以做到在O(log?n)时间内完成查找,插入和删除等操作;另外,红黑树是一种二叉查找树且有序,其中序遍历时得到的元素是有序的。对于一些需要用到有序性的应用场景可采用map。unordered_map的底层采用的是哈希表hash_table实现,其由一个大的数组,其中数组的元素节点可挂接链表实现hash冲突。哈希表的最大优点就是数据的存储和查找时间大大降低。 是基于hash_table实现,一般是由一个大vector,vector元素节点可挂接链表来解决冲突来实现。hash_table最大的优点,就是把数据的存储和查找消耗的时间大大降低,可以看成是常数时间,但是缺点又在于其建立哈希表的时间消耗较大。 9、vector与deque的比较 deque支持头部的快速插入与快速移除,这是deque的优点 Vector容器是单向开口的连续内存空间,deque则是一种双向开口的连续线性空间 deque允许于常数时间内对起头端进行元素的插入或移除操作? deque没有所谓容量观念,因为它是动态地以分段连续空间组合而成,随时可以增加一段新的空间并链接起来 deque访问容器元素的效率比vector容器慢很多(原因deque要跨内存块来访问,而vector只是使用一个内存块)。 10、deque的实现原理 deque是一种双向开口的连续线性空间,并由一段一段的定量的连续空间构成。一旦有必要在deque前端或者尾端增加新的空间,便配置一段连续定量的空间,串接在deque的头端或者尾端。 ??deque采取一小块连续的内存空间,其中每一个元素都是一个指针,指向另一段连续性内存空间(缓冲区是deque的存储空间的主体)。 ?????当?deque?需要在头部或尾部增加存储空间时,它会申请一段新的连续空间,同时在?map?数组的开头或结尾添加指向该空间的指针,由此该空间就串接到了?deque?容器的头部或尾部了。 —?END?—
|
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 0:47:05- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |