博世-智能座舱-软件开发工程师-xc一面

全程中文问答。
一小时,四五个没答出来,所以应该挂了。#牛客AI配图神器#

提问包括但不限于:
1. new/malloc区别?  答,**但是new重载这一块模糊**。
2. 说说智能指针? 共享指针引用计数、独占指针删除copy 构造/赋值运算符,weak_ptr 解决循环引用。常规的答的还行。
3. vector,删除指定值的元素(例如5和6)。 考这个原因是迭代器失效? 
4. 问了gdb的指令,比如准备用gdb,gcc加什么选项,-O3和-g可以一起使用吗? 如何查看线程?如何判断xx文件可以用gdb调试呢?大部分没答出来。
5. 实现单例,但是被问懵了,问我析构函数为什么是私有? 于是我又把它改成公有,本质还是不知所以然。查了一下gpt,回答
"
在 get() 方法中,使用了静态局部变量(static Singleton instance;),
C++ 规定:
• 静态局部变量在程序退出时会自动析构,因此不需要显式释放。
• C++11 以后,静态局部变量的初始化是线程安全的,不会引起并发问题。
所以,我们不需要提供手动的析构方式。
"
6. 深拷贝/浅拷贝。 
7. 你认为拿得出手的模块实现?然后扣细节,最后也被扣懵了。
```
#include <iostream>
#include <vector>

using namespace std; 

int main() {
    vector<int> vec = {1, 2, 3, 5, 6, 5, 7, 6};
    int pos = 0;
    int n = vec.size();
    for (; pos < n;) {
        if (vec[pos] == 5 || vec[pos] == 6) {
            vec.erase(vec.begin() + pos);
            n = vec.size();
        }
        else {
            pos ++;
        }
    }

    for (auto value : vec) {
        cout << value << ' ';
    }
}

```

```
class Singleton {
public:
  static Singleton&amp; get() {
    static Singleton instance;
    return instance;
  }
  int getValue() {
    return value;
  }
  void setValue(int value_) {
    value = value_;
  }
private:
  Singleton() = default;
  ~Singleton() = default;
  int value;
};

int main() {
  Singleton::get().setValue(42);
  std::println(&quot;value={}&quot;, Singleton::get().getValue());
}
```

参考
1. https://en.wikipedia.org/wiki/Singleton_pattern
2. https://en.cppreference.com/w/cpp/language/storage_duration
3. https://stackoverflow.com/questions/15235526/the-static-keyword-and-its-various-uses-in-c
全部评论
我也是这个岗位,也是最近面的
2 回复 分享
发布于 03-15 09:54 辽宁
mark了感觉问的还行没有特别拷打的感觉
点赞 回复 分享
发布于 03-07 20:54 广东
查了一下,vector删除那个最优雅的方式是用 erase + remove_if: " vec.erase(remove_if(vec.begin(), vec.end(), [](int x) { return x == 5 || x == 6; }), vec.end()); "
点赞 回复 分享
发布于 03-07 20:05 江苏

相关推荐

05-20 13:03
已编辑
浙江工业大学 C++
5.8用过C++十一之后的语法吗?比如&nbsp;()?了解C++11&nbsp;的Lamda表达式,智能指针以及(没听清)吗你刚刚说你用到Lamda和智能指针比较多一点,那我们先来谈谈Lamda表达式,lamda的组成部分有哪些?lamda表达始中的返回类型需要写吗?为什么?它的实现原理了解过吗?为什么编译器会把他形成一个类?然后实现这个类的时候发生了什么?具体使用它的时候发生了什么?这个类有几部分组成?必须有哪些成员函数?Lamda表达始终的[]叫做什么?它的使用场景都有哪些?接下来我们聊聊智能指针,你用过哪些智能指针,简单解释一下?Unique_ptr的使用场景?Unique_ptr的具体实现?你刚刚谈到它的移动构造,描述一下Uniqu_ptr从使用层面怎么去转移所有权,再分析一下它是怎么实现的?std::move实际上做了什么?讲一下shared_ptr实现是怎么样的?底层如何实现?讲一下你的代码中shared_ptr一般怎么写?如果不适用make_shared怎么去实现shared_ptr?new和make_shared他们两个谁的效率更高一点?make_shared是线程安全的吗?引用计数是怎么实现的?你说会指向引用计数,那么是怎么指向的?底层怎么实现的?你可以大概讲一下比如说是一个结构体,这个结构体里面有哪些东西?然后是如何创建它的?然后怎么去通过多个shared_ptr去持有他?引用计数是线程安全的吗?我答的不安全的,他说如果引用计数都不安全的话,那么shared_ptr又该怎么实现安全呢?然后谈到了多线程是不安全的,单线程安全?问如何保证多线程下的安全?除了加锁之外还有哪些方法?知不知道原子操作?接下来谈一谈容器,你是使用哪些STL容器。讲一下vector容器。扩容机制是怎么样的?底层如何实现?用这个扩容过程,性能会有消耗吗?怎么解决频繁扩容带来的性能消耗问题?vector怎么删除元素?写一个vector原地删除重复元素的代码。写快排。---5.91&nbsp;&nbsp;项目注册登陆是怎么做的&nbsp;&nbsp;&nbsp;登陆注册的时候会携带那些信息2&nbsp;&nbsp;密码传输不安全&nbsp;怎么解决的&nbsp;&nbsp;&nbsp;你的解决方法太简单了&nbsp;&nbsp;会被破解&nbsp;&nbsp;有没有其它方法3&nbsp;登陆注册&nbsp;&nbsp;用的什么协议&nbsp;&nbsp;&nbsp;&nbsp;怎么改成HTTPS&nbsp;&nbsp;改为HTTPS的话&nbsp;客户端需要做哪些工作4&nbsp;HTTPs怎么实现&nbsp;加密&nbsp;&nbsp;&nbsp;加密通道怎么建立de5&nbsp;你的数据&nbsp;需要发送到服务端&nbsp;&nbsp;过程是怎么样的?6&nbsp;就直接到服务器去了?(大概说的是在网络怎么传输)&nbsp;说一下具体细节7&nbsp;不使用ARP、DNS怎么解决?8&nbsp;项目中多线程高并发怎么实现的&nbsp;&nbsp;&nbsp;没有任务的时候&nbsp;&nbsp;你的线程在干嘛9&nbsp;没有互斥锁会怎么样&nbsp;&nbsp;&nbsp;会导致服务崩溃吗10&nbsp;举例子说明11&nbsp;再举一个例子&nbsp;&nbsp;更好的说明12&nbsp;举一个较好的让系统崩掉的例子13&nbsp;系统一定会崩溃吗?&nbsp;为什么会崩溃?背后有什么机制?14&nbsp;开很多线程就一定会卡死吗&nbsp;&nbsp;什么原因导致卡死?15&nbsp;CPU占满就一定不能切换到另外的程序吗16&nbsp;再举一个&nbsp;多线程操作导致程序崩溃的例子&nbsp;&nbsp;&nbsp;怎么就让程序崩溃了呢?(指我的例子)&nbsp;&nbsp;&nbsp;从系统的角度和程序运行的角度来看,是怎么发生的?系统报错,报什么错?为什么没有合适的程序处理&nbsp;&nbsp;就会崩掉&nbsp;?什么机制&nbsp;&nbsp;让程序推出的(上面应该都是想问操作系统会做什么事情)17&nbsp;你遇到崩溃的话&nbsp;&nbsp;怎么排查---5.13自我介绍为什么选择云智,对云智了解吗?具体了解那些?你家哪儿的?愿意来武汉吗?愿意留在武汉吗?你有其他的offer吗?分别是什么?你的职业规划?能实习多久?选择你其中一个项目介绍一下?(背景,你做了哪些?)---5.15OC---5.16offer
点赞 评论 收藏
分享
05-20 21:35
南开大学 Java
5.13总时长:1h30min1.&nbsp;自我介绍、项目介绍2.&nbsp;项目拷打:项目背景?自己完成了哪里?技术出彩的点?超卖的业务场景和解决细节?&nbsp;&nbsp;1.&nbsp;所有请求都在SET&nbsp;NX前面等待吗?重试的时间间隔是?有重试不就不公平了吗?锁的超时时间?为什么?一定能完成吗?&nbsp;&nbsp;2.&nbsp;为什么用Redis?不入库吗?丢了咋办?zset的数据结构是?具体实现细节是?&nbsp;&nbsp;3.&nbsp;SET&nbsp;NX和SET&nbsp;EX是两步,中间挂了咋办?Spring的事务是怎么保证实现的?&nbsp;&nbsp;4.&nbsp;下一个项目:怎么分词的?3.&nbsp;时间复杂度和空间复杂度怎么理解?二分查找的复杂度是多少?4.&nbsp;常见的数据结构?(一开始答成数据类型被紧急叫停hhh)链表是什么?应用场景是?数组呢?哈希表的原理和结构?5.&nbsp;树的结构还在哪些场景下使用?(丝滑转场到MySQL)innoDB的B+树是什么结构?xx场景下的xx字段适合建索引吗?6.&nbsp;HTTP和TCP分别工作在计网中的哪几层?Nginx中做TCP代理的话,能转发HTTP的请求吗?常见的HTTP状态码?HTTP返回readtimeout是为什么?(其实是处理太慢而不是连不上,答错了)7.&nbsp;进程、线程、协程分别是什么?区别?8.&nbsp;给代码说运行结果和原因9.&nbsp;Python写过吗?多进程会吗?(不会)C++写过吗?进程间通信的理论知识了解吗?10.&nbsp;a主机上一个进程上的一个线程要读取b主机内存中的一个数据,两个主机之间的层、数据、操作系统之类的交互过程是怎样的?如果是json报文(内存中——的话,内核态怎么从内存中取这部分数据(操作系统)?(说出了技术过程但不记得名字。。)11.&nbsp;Java中的垃圾回收器了解吗?讲一下。什么时候用标记-清理、标记-负值、标记-整理?12.&nbsp;做题:二分查找和一个排序(感觉应该写快排但是写了归并,并且因为想优化写了20+min不知道是不是太慢了)13.&nbsp;归并排序的优缺点是什么?归并和快排在复杂度上是什么区别?最坏情况下快排的复杂度?14.&nbsp;反问&nbsp;&nbsp;1.&nbsp;贵公司对实习生的要求:主要看基础和学习成长能力,项目经验没那么看重&nbsp;&nbsp;2.&nbsp;很想问表现怎样,但是还是问不出口
查看18道真题和解析 阿里求职进展汇总
点赞 评论 收藏
分享
部门:剪映-深圳timeline:4.25一面4.27二面4.28三面4.29hr面之后就一直泡着排序更:5.13oc,拒了————————面经一面1h:问项目token被窃取了怎么办如果要你设计一个系统可以从哪些方面解决这个问题intersectionObserver怎么实现的无限滚动,和用scroll有什么区别了解虚拟列表吗,用intersectionObserver怎么实现接着问项目,引导怎么拓展和优化一个里面一个功能点http2接着引导那个优化点(鼠鼠拼尽全脑一通瞎猜乱扯把自己说笑了,面试官遂放弃,接着往下进行了,但事后鼠鼠搜了一下发现鼠鼠扯得应该挺对了)nodejs了解koa吗讲讲express中间件有什么好处this指向题手写:封装一个函数,只在第一次点击按钮时执行,之后就不再执行讲讲闭包讲讲发布订阅发布订阅有什么好处手写:发布订阅点了一下直接delete事件会有安全问题二面45min:怎么想着大二就出来实习可实习时间学校的课怎么办为什么选前端学前端多久了两个项目的背景为什么选择写线上商城遇到的难点,怎么解决的自己最大的两个优点和缺点(鼠鼠说觉得自己脑子很聪明,绷不住笑了,面试官也跟着笑)有些急躁有导致过xxxxx吗?(没听清说的导致过什么,猜测可能是说工作延误之类的,当机立断说没有,主要导致自己焦虑)如果早上给你个任务,要求晚上ddl,你会到什么时候才寻求帮助平常有写文章的习惯吗(鼠鼠说自己语文不好,面试官又乐了,鼠鼠意识到在考写文档的能力,遂找补道平常会复盘然后写一些思路之类的)你希望在这段实习里学到什么怎么看ai现在在写代码上发展到什么阶段了最近在用哪个大模型ai在你学习里作用大吗,或者说和不用ai的效率进度差别大吗能接受的上班时间(鼠鼠说不上早八就行,面试官笑了说他们不上早八,鼠鼠接了句我们上早八写点代码题吧,最近有正在写的什么小项目吗?(鼠鼠思考了一下要不要编个,遂决定还是直接说没在写什么,最近都在准备面试。又把面试官逗笑了)手写:合并有序数组写一个登录页面,可以用ai反问:这轮是技术面吗?是如果通过的话后面还有几轮面试?正常来说至少还有一轮hr面业务?to&nbsp;B还是to&nbsp;C?即梦ai的to&nbsp;C面试结果什么时候能出来?今晚三面30min:问项目共享屏幕运行看看
点赞 评论 收藏
分享
评论
7
20
分享

创作者周榜

更多
牛客网
牛客企业服务