面经
文章平均质量分 81
拾牙慧者
会点c++、python;
展开
-
vector的简单实现
emplace_back函数可以用于在vector的末尾直接构造一个元素,而不需要先创建一个临时对象再将其拷贝或移动到vector中。这个实现使用了 C++11 中的变长模板参数和完美转发,可以接受任意数量和类型的参数,并将它们转发给。的大小,并使用了移动构造和拷贝构造函数来实现对象的拷贝和移动。的末尾直接构造一个元素,而不需要先创建一个临时对象再将其拷贝或移动到。类的实现可以正确地处理对象的拷贝和移动,并且可以动态调整。对象,并测试了它们的各种函数。在这个实现中,我们使用了完美转发来将。原创 2023-06-07 23:54:13 · 572 阅读 · 0 评论 -
海量数据去重
海量数据去重一个文件中有40亿条数据,每条数据是一个32位的数字串,设计算法对其去重,相同的数字串仅保留一个,内存限制1G.方法一:排序对所有数字串进行排序,重复的数据传必然相邻,保留第一个,去除后面重复的数字串即可。缺点是排序时间复杂度太高,并且显然是需要内排序+外排序一起的。优化的方法有扫雪机模型。方法二:哈希表 + 文件分割当然还有一种方法,取32位的前n位做一个哈希,然后把哈希值一样的数据串放到一个文件里面。然后每次将一个文件load到内存中,然后对这个文件中的数据做个排序 or 哈希去原创 2021-11-24 16:38:52 · 2823 阅读 · 0 评论 -
拾牙的2021年秋招总结(大概会有帮助?)
秋招面试经历三十几场面试,拿了腾讯、百度、华为、B站、OPPO等几家offer,记录一下原创 2021-09-15 19:12:46 · 1256 阅读 · 10 评论 -
IO多路复用的三种机制Select,Poll,Epoll
IO多路复用的本质是通过系统内核缓冲IO数据让单个进程可以监视多个文件描述符,一旦某个进程描述符就绪(读/写就绪),就能够通知程序进行相应的读写操作。select poll epoll都是Linux提供的IO复用方式,它们本质上都是同步IO,因为它们都需要在读写事件就绪后自己负责进行读写,读写的过程是阻塞的。IO复用技术最大优势就是系统开销小,系统不必创建进程或线程,也不必维护这些进程线程。基础知识用户空间与内核空间:操作系统将虚拟空间划分为两个部分,一部分为内核空间,一部分为用户空间。内核可以访问转载 2021-08-10 23:18:13 · 454 阅读 · 0 评论 -
MySQL面试准备——64页pdf
本笔记为以前整理的零碎的关于Mysql的知识点,有深入源码的也有浅层的八股。已经被我整理成了一个pdf。实习岗位正好也是和数据库内核有关的,之后应该还会更新。做个整理,方便秋招的时候快速回顾吧。链接:[链接](https://pan.baidu.com/s/1uNu65pnkXIhCbMQptY1FFw )提取码:1234原创 2021-06-05 16:02:53 · 260 阅读 · 0 评论 -
《操作系统知识点整理》
1、进程与线程概念进程时对运行时程序的封装,是系统进行资源调度和分配的基本单位,用于实现操作系统的并发。线程是进程的子任务,是CPU调度和分配的基本单位 ,用于实现进程内部并发。线程是操作系统最小执行和调度单位。每个线程独自占用一个虚拟处理器,寄存器组,指令计数器和在·处理器状态。每个线程完成的任务不同,但是共享同一个地址空间。区别1、一个线程属于一个进程,一个进程有多个线程。2、进程拥有独立的内存单元,而多个线程共享进程的内存...原创 2021-03-14 13:54:36 · 371 阅读 · 0 评论 -
C++基础知识点整理
基本语法1、static关键字的作用1、全局静态变量加了static关键字的全局变量只能在本文件中使用。存储在静态存储区,整个程序运行期间都存在。2、局部静态变量作用域仍为局部作用域。不过离开作用域之后,并没有销毁,而是贮存程序中,不能进行访问,除非函数再次被调用。3、静态函数只能在声明它的文件中使用,不能被其他文件使用,也不会和其他cpp中的同名函数起冲突。4、类的静态成员使用静态成员可以实现多个对象之间的数据共享,也不会破坏隐藏原则。静态数据成员只存储于一处,供所有对象共用。5.原创 2021-03-10 13:28:50 · 6499 阅读 · 0 评论 -
《c++特性》
目录多态构造函数和析构函数存在多态吗?虚函数表虚析构函数纯虚函数和抽象类运行时多态和编译时多态的区别继承设计实例指针对象和普通对象的区别正确初始化派生类方式继承和赋值的兼容规则protected 和 private 继承基类与派生类的指针强制转换如何用C实现C++的三大特性C语言实现封装性C语言实现继承C语言实现多态多态在类的定义中,前面有 virtual 关键字的成员函数称为虚函数;virtual 关键字只用在类定义里的函数声明中,写函数体时不用。「派生类的指针」可以赋给「基类指针」;通过基.原创 2021-03-05 14:48:09 · 631 阅读 · 0 评论 -
关于LRU缓存简单记录以及代码补全。
目录大概思路时间空间复杂度分析指针操作具体细节代码双向链表设计私有成员变量设计:构造函数和析构函数设计:get与put具体设计双向指针的具体细节添加到头节点函数删除尾节点函数删除节点函数删除节点函数今天面试考到LRU,太紧张了,完全傻了。。。赶紧做个记录LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰。LRU 缓存:设计和构建一个“最近最少使用”缓存,该缓存会删除最近最少使用的项目。缓存应该从键映射到值(允许你插入和.原创 2021-02-26 22:23:38 · 282 阅读 · 0 评论