博世-智能座舱-软件开发工程师-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 江苏

相关推荐

07-12 22:38
门头沟学院 Java
我这里有大厂,最近做过的实习项目,可以用于包装简历,感兴趣,可以看简介中项目地址先看教育经历部分,这个葫芦岛校区,我觉得可以去掉乍眼一看,以为是专升本,当然,如果去掉这个校区,就是另一个学校了,那就当我没说。作为一个在校生,你应该是要有在校经历的,不管是在校奖学金还是比赛,你都应该写一写,偷偷告诉你,这个没人会调查,你可以写一下,尤其是相关的比赛,你这个经历至少要写两到三个,自己想一想写什么比赛吧然后看相关技能部分,这里的行间距有些大了,调小一些,然后可以分点来写,技术深度写的也都是够的,如果还想补充技术深度的话,可以看我往期的作品,但你都研究生了,可以多写一些纯JAVA之外的技术,像云和AI的调用,这些都非常加分然后是实习经历,是这个简历中最重要的一部分,第一点里面就有一个登录,实现你这不是自己包装的吗?看着有些假呀,这个也没什么含金量给去掉吧。Postman和generator的测试也去掉这个和开发不是很有关系,可以在最后用非常少的文字来描述一下就行。项目亮点,建议五到六个才是你应该有的水准,并且前三到四个至少含金量高一些,比如那个用mq处理订单的,你可以描述成功能实现之后,短时间内接口的q&nbsp;PS可以提升多少多少,还有第3点,那个防止重复提交,比之前的实现节省时间85%,这样描述每个亮点都可以加一些参数上去,但必须要是真实的,你可以自己测试一下如果实习经历写的很好的话,练习项目倒不是很重要,但如果你再改善的话,也是很加分的,可以参考一下我往期作品中优秀的练习项目描述。你这个一眼望去,全是red&nbsp;is,让人连看的欲望都没有然后就是整个项目的排版了,感觉字体偏大,行间距偏大,然后,首航如果空两格的话,简历整体会好看一些
点赞 评论 收藏
分享
评论
7
22
分享

创作者周榜

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