诺瓦星云嵌入式工程师一面凉经

省流:不知道过没过,发了测评,测评随便做就交了,测评题目很恶心,不会做

体验:面试官还不错,我麦调试浪费了一些时间,面试官还是挺耐心的。我自己学过的都答上来了,没学过的就直接说不会,大概率是不匹配的

  • 自我介绍
  • 实习内容、难题
  • c++多态
  • stl容器map和unordered_map
  • vector的capacity和size区别
  • vector的resize和reserve的区别
  • vector是怎么扩容的vector清空
  • swap和clear区别
  • 问gpu、客户端、渲染、图形学:都不会
  • 反问:介绍业务,主要和大屏幕相关,涉及到图像处理

后记

  • vector的capacity和size区别:

size是vector中已有元素个数,

capacity是vector在不扩容的前提下能容纳的最多元素个数。

若没有显示指定,vector初始size和capacity都是0

  • 当vector的size等于capacity时,再插入就需要扩容。

linux,新的capacity就是旧的capacity的两倍。

  • clear和swap:

clear:逐个析构vector中的元素,但它不会释放底层的内存,时间复杂度为O(n)(size变为0,capacity不变)

swap:可以迅速清空原vector,并将所有资源(包括内存)释放回系统。swap()的时间复杂度为O(1)(因为只涉及到指针交换)

想要删除vector中的所有元素:除了swap,可以clear+shrink_to_fit(shrink_to_fit会将capacity大小变为size的大小)

resize:传入的参数大于size时,会在尾部添加新元素。大于capacity就会扩容

传入的参数小于size时,就会析构尾部多次的元素

reserve:只是分配空间,不构造函数

#25秋招记录#
全部评论

相关推荐

牛客389580366号:读书的意义在于提升自己和他人吧,“阶级意识”是读书过程中的产出,“跨越阶级”是通过读书获得的能力
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务