24-1-9 bilibilic++音视频

下午两点面试,面试官迟到了一会,面试官人很好,整体面试经历很不错,但是我人太紧张了,基础知识掌握的深度不够,没有深挖,

是做音视频的底层相关的,

实习要求只要每天打卡够九个小时就行

c++有哪些新特性

智能指针有哪些

auto_ptr shared_ptr weak_ptr unique_ptr

shared_ptr大概怎么实现的

有一个指针和一个引用计数的指针,每次拷贝和复制都会使引用计数加一,析构时减一,如果引用计数为零,那么就证明没人使用这块内存,可以成功析构。

shared_ptr可以实现一起读安全,但是一起写不安全

shared_ptr也会有内存泄漏,当两个类的对象里面都有shared_ptr指针,且两个对象互相引用,那么引用计数都不会下降

智能指针的作用是什么

防止内存泄漏

什么叫内存泄漏

就是因为失误导致的使用完某块内存之后,忘记释放掉,导致失去对它的控制。

lambda表达式

左值右值

右值引用的意义在哪 为什么右值引用可以有这个意义 是怎么实现的

右值引用其实就是在栈上在开辟一块空间用来放右值引用指向的值,然后再把地址传给右值引用的对象,相当于把原来的将要消失的对象寿命强行延长到试用结束

vector和数组的区别

vector可变大小,数组不行 vector是一段连续的内存

vector内部有一个size()和capacity()

size()是已使用的大小,capacity()是最大容量

每次都是加倍扩容

resize()是变size的大小,如果resize(len)len>capacity 那么size和capacity都等于len

reserve是变capacity的大小 如果len<capacity则什么也不变 否则capacity变为len

list指向的是一块块不连续的空间 环状的双向链表

插入和删除元素很方便

deque

deque是一个双端开口的线性连续空间,其内部为分段连续的空间组成,随时可以加一段新的空间并链接(deque的迭代器比vector复杂,所以尽量使用vector,为了提高效率,可以在对deque排序的时候把deque复制到vector中进行排序最后再复制回deque)

deque是由一段一段的定量连续空间组成的,一旦有必要在其头部或者尾部增加字段,就配置一段定量连续空间,串接在deque的头或者尾

好处:避免和vector一样扩容时申请空间,复制,释放原空间,维护着整体连续的假象,并提供随机访问的接口

坏处:迭代器很复杂

一个map存放指针,每个指针都指向一片线性连续空间,成为缓存区

stack&queue

底层以deque为架构

heap

priority_queue

无迭代器

map&&set

共同的:都是C++的关联容器 通过提供的接口对里面的元素进行访问,底层都是红黑树

不同的: set是判断一个元素是否在里面,map是映射,把一个值映射成另一个值(字典)

查找一个树:O(logn)

缺点:插入数值时,需要调整红黑树

map&&unordered map

底层:map基于红黑树,元素的排列是有序的

unordered_map基于哈希表,元素的排列顺序时杂乱无序的

map:优:有序性,增删改查都是logn 但是缺点也是增删改查为logn

unordered_map 优点:增删查 时间复杂度为O(1)

缺点:内部基于哈希表,以(key,value)形式储存,空间占用率高

增删改时间复杂度不稳定平均为O(1),取决于哈希函数

UDP/TCP

udp和TCP的区别在哪,

tcp怎么实现的稳定链接(主要ACK)

能不能用udp构建tcp连接

http1.0 1.1 2.0区别在哪

H264结构是什么

gop的作用

SPS PPS ESI

STL几个组件

fw啊 小吴,答得一坨

相关推荐
血小板要健康12 小时前
Java基础常见面试题复习合集1
java·开发语言·经验分享·笔记·面试·学习方法
cyforkk16 小时前
09、Java 基础硬核复习:异常处理(容错机制)的核心逻辑与面试考点
java·数据库·面试
Warren9819 小时前
Pytest Fixture 作用域详解:Function、Class、Module、Session 怎么选
面试·职场和发展·单元测试·pytest·pip·模块测试·jira
努力学算法的蒟蒻19 小时前
day73(2.1)——leetcode面试经典150
面试·职场和发展
Warren9819 小时前
接口测试理论
docker·面试·职场和发展·eureka·ansible
cyforkk20 小时前
13、Java 基础硬核复习:泛型(类型安全)的核心逻辑与面试考点
java·开发语言·面试
试着21 小时前
【huawei】机试
华为·面试·机试·手搓代码
编程彩机21 小时前
互联网大厂Java面试:从分布式事务到微服务优化的技术场景解读
java·spring boot·redis·微服务·面试·kafka·分布式事务
编程彩机21 小时前
互联网大厂Java面试:从Spring WebFlux到分布式事务的技术场景解析
java·微服务·面试·分布式事务·spring webflux
kogorou0105-bit21 小时前
前端设计模式:发布订阅与依赖倒置的解耦之道
前端·设计模式·面试·状态模式