08 2022 档案

摘要:使用最广同时也是面试问的最多的一个设计模式 代码: /** 单例:即程序只能拥有一个实例,比如数据库连接池、日志系统等,这个类提供了一种访问其唯一的对象的方式。 * 单例分饿汉式和懒汉式,饿汉式无线程安全问题,懒汉式在多线程场景下存在线程安全问题,需要加锁实现线程同步。 */ #include <m 阅读全文
posted @ 2022-08-10 10:36 Ray-ss 阅读(113) 评论(0) 推荐(0)
摘要:1. 回调函数与普通函数的区别 回调函数即函数指针来实现,可实现多态效果;信号处理函数一般也设置成回调,当事件发生,通过回调函数通知。 2. 函数返回局部变量时的一些优化:编译器的NRV优化,C++11的move 实际上归根结底是减少拷贝,构造和析构的次数,提高实现效率,只是实现方面的不同罢了。 3 阅读全文
posted @ 2022-08-10 10:31 Ray-ss 阅读(29) 评论(0) 推荐(0)
摘要:1. 从快排partition过程借鉴而来,利用partion过程每次能确定一个元素位置来实现。 此算法期望时间复杂度为O(N),最差为O(N^2)。 每次确定了一个元素位置后,就能判断待查的topk个元素是在哪个分区,只需要递归一个分区即可。 代码如下: int quickSelect(vecto 阅读全文
posted @ 2022-08-10 10:09 Ray-ss 阅读(471) 评论(0) 推荐(0)
摘要:## 快速排序(代码) 写这篇文章之前至少做了不下十遍快排,但现在仍然不能保证一写就A,故记录一下。 partition过程的边界条件不是很好弄,因此面试经常出现。 partition单向划分:三个区域 <= > ? int partition1(vector<int>& nums, int l, 阅读全文
posted @ 2022-08-10 09:35 Ray-ss 阅读(53) 评论(0) 推荐(0)
摘要:c++里,局部变量会自动初始化为0; 但是全局变量会给个不确定的值。 8.3号做了个笔试题,一直A不出来,只能过50%多。 原因:用的核心代码模式,有一个类,里面实现个函数即可, 当时需要个全局的变量,就申请了个成员变量,但是当时没有构造函数,所以也就忘了初始化了(自己大意了,默认它就初始化为0)。 阅读全文
posted @ 2022-08-08 17:30 Ray-ss 阅读(124) 评论(0) 推荐(0)