asic面试题目 英伟达_NVIDIA(英伟达)面试经验

面试过程:

1. 为什么要引入右值引用,const的左值引用不一样可以bind到右值吗?或者为啥不直接用左值引用就可以了。右值的概念是C++98里就存在了,C++11新引入的是右值引用,这个我没有回答准确。

2. std:move的实现机制,里面做了什么,为什么这样做就可以产生一个右值reference,这个过程是否涉及引用塌陷。

3. 完美转发中的forward的实现机制,完美转发是什么,什么场景需要用到完美转发;要理解里面的原理你才能回答好!

4. lambda表达式的类型是什么?我当然不知道了,从没想过这个问题。

5. auto搭配forward reference之后变量型别的推导,大概就是effective modern C++那本书最枯燥的那块内容。 面试官问的面试题:

6. 让你实现auto推导,你怎么实现?你怎么判断应该是推导出来为左值还是右值?

7. unique_ptr和shared_ptr有什么区别?能相互转换吗?shared_ptr比unique_ptr慢在哪里?为什么多了个引用计数就会慢,照理引用计数只会多小号一点内存和少量的在初始化阶段的运算?我回答是为了handle多线程的下引用计数的保护会导致有些开销,然后面试官就问C++ automic是否了解?

这些问题都蛮有挑战的,我平常工作中会看些相关的资料,但是钻研的不够深入,有些概念有些印象有点了解但没有融汇贯通。于是在和面试官这样资深的人交流中败下阵来,哈哈,自勉!大概需要BJarne Stroustrup这号人物出场才能镇住面试官了。Anyway,实际工作中应该用不到这么detail的对语言实现机制的了解,既然入了C++这个坑,那就只好努力,争取早日可以虐菜。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值