腾讯C++后台一面问题求助

腾讯面试官的一个问题求助:
1 C++里面除了使用虚函数,还有哪些实现运行期多态的方法;
2 为什么vector超出了它的capacity要在别的地方申请一块2倍大小的内存,而不是在后面直接申请呢,我说后面可能后面的内存正在使用~那么你有办法判断内存是否正在使用呢?
#面经#
全部评论
C++里面除了使用虚函数,还有哪些实现运行期多态的方法: 最直接的例子应该就是动态库的实现以及网络编程过程中的回调函数 ------------------------------------------------------------------------------------ linux环境下有申请内存的函数可以直接在当前数组后面,扩展当前数组内存大小。 如何判断内存是否被使用? 这个其实不能判断的,因为这个内存管理不是你做的,是系统自己做的,但是,如果自己实现一个内存池进行管理(用mmap申请一块大内存,然后自己实现相关的分配释放内存操作),这就非常好处理了,可以根据需求在分配的内存的两侧加上相应的读写保护标志,总的来说,这块内存我进行管理,我当然知道哪里被使用了,哪里没有被使用咯
点赞 回复 分享
发布于 2018-04-14 15:28
第一问RTTI
点赞 回复 分享
发布于 2018-04-14 16:11
第二题,因为vector维护的是一段连续的内存,(你可以看成是数组这种数据结构),并不像链表那样是动态的内存。
点赞 回复 分享
发布于 2018-04-14 14:42
C++11 里面的bind+ function可以实现类似多态。vector需要连续的内存,所以扩大需要再选地址
点赞 回复 分享
发布于 2018-04-14 14:25
怎么直接在后面申请?难道用底层的brk函数么?
点赞 回复 分享
发布于 2018-04-14 15:05

相关推荐

牛可乐121381:卖课的
点赞 评论 收藏
分享
03-10 20:17
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
9
分享

创作者周榜

更多
牛客网
牛客企业服务