C++基本概念笔记01

1.STL中emplace 和push的区别
答: C++11新加入的语法,emplace_back() 和 push_back() 在底层实现机制上是不同的, push_back() 在向容器尾部添加元素时,会先创建这个元素,然后再将这个元素拷贝或移动到容器中(若是拷贝的话,还需要在结束后销毁之前创建的这个元素), emplace_back() 则是直接在容器尾部创建这个元素,省去了拷贝或移动元素的过程。


2.共享内存为什么效率高?
答:1)无需复制数据:在进程或线程之间共享数据时,传统的方式是通过进程间通信(IPC)或线程间通信(IPC)机制,如管道、消息队列、套接字等,来复制数据。这些复制操作需要额外的时间和资源。而共享内存允许多个进程或线程直接访问相同的内存区域,无需数据复制,因此可以显著减少数据传输的开销。
2)快速访问:共享内存允许多个进程或线程同时访问相同的内存区域,这可以提高数据访问的速度。因为数据存储在物理内存中,而不需要从一个进程或线程复制到另一个进程或线程,所以数据访问更加快速。
3)低开销:与某些IPC机制相比,如管道或套接字,共享内存的开销相对较低。这些IPC机制需要创建和管理额外的进程或线程,而共享内存只需要在内存中创建共享区域,并进行简单的同步控制。
4)适用于大数据量:共享内存特别适用于需要高效处理大量数据的应用程序,因为数据不需要复制,可以立即在多个进程或线程之间共享。


3.如何判断二叉树是二叉搜索树?
答:1)中序遍历验证:
             -进行中序遍历(Inorder Traversal)二叉树;
             -在遍历的过程中,检查每个访问的节点值是否按照升序排列(从小到大),如果所有节点都满足升序排列的条件,则该二叉树是BST。
2)递归验证: 
            -从根节点开始,递归地检查每个子树是否满足BST的条件;
            -对于每个节点,确保其左子树的所有节点值都小于当前节点的值,右子树的所有节点值都大于当前节点的值;
           -如果递归过程中的每个节点都满足这个条件,那么整个二叉树是BST。
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值