当前位置: 首页 > news >正文

第二次面试:C++qt开发实习生

        大家好,本篇文章记录总结我的面经,希望对各位读者有帮助,如有不正确之处望各位帮忙指正!

一.自我介绍:

        姓名+学校+专业,项目经验(主要运用了什么技术,对我有什么帮助),对入职实习的期望,我的自我介绍到此结束,谢谢!

二、软件模式:

1.写一个单例模式

        单例模式一定要体现单例GetInstance、私有构造函数、禁止拷贝赋值的函数一定要写!!!这样才能保证“单例”,如果自己有意识地写就很加分,如果面试官提醒的话就肯定会减分。(我就是忘记写禁止拷贝赋值o(╥﹏╥)o)

懒汉模式:

        懒汉模式就是懒,所以别人不催它就不创建(我们不主动GetInstance,它就始终不创建对象)

//单例模式:懒汉模式
class Singleton
{
public:static Singleton& GetInstance(){static Singleton instance;return instance;}Singleton(const Singleton& rhs) = delete;Singleton& operator=(const Singleton& rhs) = delete;Singleton(const Singleton&& rhs) = delete;
private:Singleton(){cout << "单例创建" << endl;}
};

饿汉模式:

        我们饿的时候巴不得立刻有吃的,饿汉模式就是这样,一启动就创建好对象

//饿汉模式
class Singleton
{
public:static Singleton& GetInstance(){return _instance;}Singleton(const Singleton& rhs) = delete;Singleton& operator=(const Singleton& rhs) = delete;Singleton(const Singleton&& rhs) = delete;
private:Singleton(){cout << "单例创建" << endl;}static Singleton _instance;
};
Singleton Singleton::_instance;

饿汉模式vs懒汉模式:

特性饿汉式 懒汉式 
创建时机程序启动时立即创建第一次调用getInstance()时创建
资源占用可能浪费资源(如果一直不用)按需分配,节省资源
性能特点 获取实例速度快(已创建好) 第一次获取稍慢(需要创建)

2.软件模式知道哪些:

        工厂模式、建造者模式、代理模式等等,可以私下自行搜索(说的越多肯定越好,确保说的都会、不会的切记不要说

三、编译环境:

1.平时在哪些环境下写代码:

        根据自己的亲身经历。我一般是VS2022和VScode以及QtCreator

2.编译器的常用快捷键:

  • 切换源文件和头文件:Ctrl K + O
  • 调试的时候快捷键:F5(运行到断点处、没有程序直接开始运行),F10(逐过程调试),F11(逐语句调试)

四、C++语法

1.写一个类,随便加两个成员变量,写一份成员函数:

class Myclass
{
public:Myclass():_a(0),_b(0){ }int Geta()const{return _a;}
private:int _a;int _b;
};

2.写一个智能指针的变量:

有两种方式:推荐第二种,因为性能更好,更安全

std::shared_ptr<MyClass> ptr(new Myclass());
std::shared_ptr<MyClass> ptr=make_shared<Myclass>();

ps:智能指针非常重要,面试几乎都会问的,可以详细看这篇博客C++:四大智能指针-CSDN博客

3.创建一个顺序表,10个这个类:

std::vector<Myclass> classes1(10);

4.sort函数总共几个参数?如何使用sort函数的第三个参数将这个类按照a值进行一个排序:

//lambda表达式
std::sort(classes.begin(), classes.end(), [](const Myclass& lhs, const Myclass& rhs) {return lhs.Geta() < rhs.Geta(); });
//函数指针
bool Compare1(const Myclass& lhs,const Myclass& rhs)
{return lhs.Geta() < rhs.Geta();
}
std::sort(classes.begin(), classes.end(), Compare1);
//仿函数
struct Compare2
{
public:bool operator()(const Myclass& lhs, const Myclass& rhs){return lhs.Geta() < rhs.Geta();}
};
std::sort(classes.begin(), classes.end(), Compare2());

五、算法:

1.顺序表删除下标为奇数的元素:

        从后向前删除!!!从前向后删除的话,元素的下标会改变,不好处理,正难则反,从后面删

std::vector<Myclass> classes(10);
for (int i = 0; i < 10; i++)
{classes[i].seta(i);cout << classes[i].Geta();
}
cout << endl;
int i = classes.size() - 1;
for (auto it = classes.begin(); i>=0; i--)
{if(i%2==1)classes.erase(it+i);
}
for (int i = 0; i <classes.size(); i++)
{cout << classes[i].Geta();
}

六、项目:

1.为什么想写第一个项目?为什么想写第二个项目?

        根据自己的想做项目的初心回答即可,因为什么想做这个项目(可以是自己的兴趣,也可以是学校课题的拓展等)

七、个人反思:

  • 自己做的项目,一定要多熟悉熟悉,张口就来这种,如果有一部分的代码参考了AI一定要在理解AI做法的基础上再去自己敲一遍这部分的代码,将学的东西转化为自己的。
  • 对于C++11的东西还是不太熟练,不仅要掌握原理还要会用会敲代码,用到项目中。
  • 对于算法题,有一个月没怎么认真做算法题了,问到算法的时候脑子是空白的,每天要养成写算法题的好习惯。
  • 软件模式这方面掌握的实属不怎么样,要重点复习回顾。

结语:

        以上就是我第二次面试的全部内容了,希望对大家有些帮助,也希望与一样喜欢编程的朋友们共进步,希望大家面试全过,offer多多!!!

谢谢观看

如果觉得还阔以的话,三连一下,以后会持续更新的,我会加油的

祝大家早安午安晚安

http://www.dtcms.com/a/503684.html

相关文章:

  • 泰安建设网站哪个好单位网站开发费用进什么科目
  • 【Flume】Flume Learning
  • 和网站设计人员谈价要注意什么那些网站是asp做的
  • 网站视频提取软件app天河做网站设计
  • GPU服务器存储选型指南:SFF与LFF硬盘深度解析与实战策略
  • 学校网站建设介绍吉林网络推广代运营
  • 集合性能基准测试报告:ArrayList vs LinkedList、HashMap vs TreeMap、并发 Map 四兄弟
  • 黄石做网站公司二手商品网站制作
  • c2c网站功能关于网站建设的英文歌
  • k8s(十)Helm详解
  • 建设部执业资格注册中心网站查询免签约收款WordPress
  • 百度推广用户注册单页网站如何优化
  • 数据库--视图、索引
  • 硅基计划5.0 MySQL 叁 E-R关系图联合/多表查询三大连接子查询合并查询
  • 网站设计连接数据库怎么做如何做好网站推广营销
  • Langgraph译文2:多智能体系统
  • 太原云起时网站建设工作室logo设计免费生成
  • 基于Trae/Whisper/FFmpeg与Knowledge Graph MCP技术开发语音生成会议纪要智能应用
  • [嵌入式系统-144]:“智能体机器人”操作系统
  • iis网站开发教程河西区做网站的公司
  • FFmpeg 基本API av_find_input_format函数内部调用流程分析
  • 制作网页的网站2023电商排行榜前十名
  • 【课堂笔记】复变函数-5
  • nas可以做视频网站吗深圳律师网站建设
  • 抑制高电压浪涌芯片LT4356
  • LLMs之RAG之Benchmark:面向真实场景的检索嵌入基准(RTEB)—理论、设计与实践指南
  • 从网址怎么看网站的域名有模板怎么做网站
  • 做建网站的公司wordpress点播主题
  • ES6 箭头函数
  • [FIH][GMS] 2025-04 Google announcement Part1