博世-智能座舱-软件开发工程师-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 回复 分享
发布于 2025-03-15 09:54 辽宁
mark了感觉问的还行没有特别拷打的感觉
点赞 回复 分享
发布于 2025-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()); "
点赞 回复 分享
发布于 2025-03-07 20:05 江苏

相关推荐

ai面试&nbsp;1.简单介绍自己,实习经历,项目等2.我看你的项目…,说说怎么做的吧3.http协议讲讲吧3.1&nbsp;你提到了http1.&nbsp;1.1&nbsp;2.0&nbsp;3.0&nbsp;的区别,并且提到了队头阻塞,那你说说2.0的队头阻塞怎么解决呢3.2&nbsp;你提到升级http3.0,同时也说到了升级的硬件约束很大,能不能根据2.0的多路复用和头部压缩怎么提升在高并发情况下的通信效率4.请你简单介绍实现一个邀请功能吧,数据设计和api模式4.1&nbsp;你提到可以用消息队列和uuid幂等,那么怎么确保消息在发生过程不丢失,不被重复消费呢4.2&nbsp;现在有这么一个场景,用户想要获取邀请数据该怎么设计呢?5.你知道分库分表吗,在高并发情况下怎么分库分表能使得系统性能较高呢5.1你提到可以用hash来均匀分库分表,那么如果这个时候需要跨表查询数据,高并发情况下,尤其是用户的一些特定数据,需要范围查询(时间)等,怎么办呢5.2&nbsp;你说可以建立一个关联表,高并发情况下,如果想要提升性能怎么设计呢(不确定,有点记不清了)7.现在有多供应商和多大模型,你作为后端,需要提供统一网关,完成策略回退,配额管理,以及兼容性api7.1&nbsp;你说可以用websocket实现配额消费监听,高并发情况下,这个时候如果出现了数据漏写和重写,怎么办呢第6点想不起来了,应该不是很难的吧…笔试选择题十题编程题三道:1.最大递增子序列(签到题)2.最小括号交换次数使其有序如:))((,需要三次3.图论,无向图,给出一个二进制序列(长度为n),接下来给出从n-1条信息a,b表示(a,b)直接有边。再下来给出m条信息,格式为a,b,ca为2请你给出从b到c简单路径组成的序列的二进制转十进制。如:2&nbsp;1&nbsp;3&nbsp;。1到3可能是010,则你输出2a为1请你把b到c路径上的数据反置,如010变为101。(a为1和a为0可以交替着来,所以你需要更新序列的)。总结ai面的难度不低笔试a了1.8道,个人感觉还行最大的问题是,孩子不太懂acm的输入输出还有这个他的编程器,我不知道怎么读字符串,我用String&nbsp;str=in.nextLine()报错最后还是借助idea&nbsp;代码补全给我弄的输入String&nbsp;str=in.next()我真没招了还有就是下一题定义数组又报错,直接又是代码补全,发现我少补了一个长度进去。唉,希望不要判我作弊
查看13道真题和解析
点赞 评论 收藏
分享
评论
8
26
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务