- 博客(118)
- 收藏
- 关注

原创 【踩坑记录】【C++】STL中sort 用的是快排吗?:根据数据量和递归深度选择快排、堆排(heap sort)、插入排序;
文章目录一、插入排序的优势:二、STL 对快排和插入排序的抉择:三、意外而来的堆排;四、总结一、插入排序的优势:插入排序复杂度虽然是O(n^2);但是其时间复杂度中常数项小,并在优化情况下,小数据量时,有更快的优势;其他复杂排序,有递归等操作带来的额外的负荷;我这版STL中,判断用快排还是用插入排序的阈值选用的时32 ;二、STL 对快排和插入排序的抉择:侯捷的 STL 源码剖析中讲到的是16以下的数据用插入排序,以上用快排;而我这版的STL sort ,参数修改成为了32 ;上图为
2021-08-05 09:54:11
901
4

原创 【踩坑记录】priority_queue 第三个模板参数和sort 的第三个形参的区别;仿函数、自定义排序函数、lambda 函数分别传入;传入类型和对象的区别;
文章目录priority_queuesortpriority_queue priority_queue<int,vector<int>,greater<int>> q; auto cmp = [](const int & a, const int & b) {return a < b; }; priority_queue<int, vector<int>, decltype(cmp)> que4(cmp);
2021-08-04 22:28:31
1007
1

原创 【踩坑记录】const 引用作为形参,实际上也是有拷贝存在的;常量引用、const 引用接受常量的时候,会构造一个临时变量出来;
文章目录结论:应用:证明:-通过反汇编证明代码实现;证明:- C++ primer 讲解结论:const 引用因为能接受范围大,可以接受常量,所以被经常使用;const 引用 被传入常量时,还是会在栈中构造一个匿名变量(临时变量)然后引用指向这个变量;应用:我们经常会将常量直接传入函数,(当函数形参为常量引用时候);如下面第二次的func调用我本来以为直接传入常量,引用指向的空间是常量存在的静态区;后来好奇看了一下发现不是;书上也明确有讲出会构造临时变量;void func(
2021-07-27 22:12:49
453

原创 【踩坑记录】虚函数表是什么时候生成的,虚函数表地址是什么时候给对象的;虚表指针是在构造函数之前就给了对象了;
文章目录一、虚函数表二、首先讲一下结论:三、证明一、虚函数表虚函数表是一块连续的内存,每个内存单元中记录一个JMP指令的地址。二、首先讲一下结论:首先,虚函数表在编译时候就已经确定;对象在构造前就已经分配好内存,在进入构造函数之前就已经将虚函数表地址给了对象了;进一步的,虚函数表给对象,在初始化列表之前;我们都知道初始化列表先于构造函数函数体实现;于是顺序如下:构造父类;将子类虚函数表地址给子类对象;初始化列表,初始化;构造函数本体;构造父类的时候,也是这样一个步骤
2021-07-25 21:41:05
3594

原创 [文章目录]-文章索引
目录C/C++1.STL计算机网络1.应用FPGA实例其他C/C++类内、类外重载运算符new、delete与malloc、free模板类中,类外重载运算符自增++自减–运算符的重载cout 与指针函数指针、函数指针数组左值、右值、右值引用;移动语义 泛型编程:模板类、模板函数,class、template迭代器与指针、迭代器失效1.STLpush与emplace计算机网络DNSMTU、MSS;最大最小长度1.应用MQTT本地服务器搭建、简单协议分析wireshar
2021-05-13 13:41:24
309
原创 【chromium】常用设计模式:委托模式(Delegate Pattern)、观察者模式、 工厂模式。
【chromium】常用设计模式:委托模式(Delegate Pattern)、观察者模式、 工厂模式。
2022-04-27 23:55:48
877
原创 【Chromium】View 与 Widget;Chromium UI Platform;View 类与 Widget 类
【Chromium】View 与 Widget;Chromium UI Platform;View 类与 Widget 类
2022-04-16 12:09:00
2332
原创 【chromium】DevTools、UI Devtools & Native UI、Frontend DevTools & Backend DevTools
【chromium】DevTools、UI Devtools & Native UI、Frontend DevTools & Backend DevTools
2022-03-30 10:05:51
916
原创 【WinDbg】常用窗口、内存符号命令、调试命令;常用流程,入口函数下断点。
【WinDbg】常用窗口、内存符号命令、调试命令;常用流程,入口函数下断点。
2022-03-29 11:38:33
627
原创 【学习笔记】git 笔记、gclient笔记、VS code git 相关插件
git 笔记、gclient笔记、VS code git 相关插件
2022-03-24 16:14:45
2100
原创 【chromium】content、content shell、content API;WebLayer;CEF
【chromium】content、content shell、content API;WebLayer;CEF
2022-03-17 22:45:03
1755
原创 【chromium】Web Workers 、Shared workers、Service Workers & WebView && dedicatedWorke与sharedWorker 实例
【chromium】Web Workers 、Shared workers、Service Workers & WebView
2022-03-15 18:11:03
5185
原创 【Chromium】【笔记】《Chromium 如何显示 Web 页面》《chromium多进程架构》
【Chromium】《Chromium 如何显示 Web 页面》《chromium多进程架构》
2022-03-13 18:15:49
3796
原创 【chromium】chromium IPC:mojo、mojom 实例;form:Intro to Mojo & Services
chromium IPC:mojo、mojom 实例;form:Intro to Mojo & Services
2022-03-02 17:30:25
1767
4
原创 【读书笔记】【WebKit技术内 幕(三)】GPU硬件加速渲染、canvas与WebGL、 JavaScript与JavaScript 引擎、JavaScriptCore与V8
GPU硬件加速渲染、canvas与WebGL、 JavaScript与JavaScript 引擎、JavaScriptCore与V8
2022-02-20 19:46:02
2201
原创 【chromium】win10 VS2019 环境 chromium 配置与编译。
win10 VS2019 环境 chromium 配置与编译。
2022-02-15 20:46:46
2162
原创 【读书笔记】【WebKit技术内 幕(二)】Chromium & Webkit资源加载与网络栈、DOM树、HTML解释器、影子DOM、CSS解释器和样式布局、网页层次与渲染、绘图上下文、
Chromium资源加载与网络栈、DOM树、HTML解释器、影子DOM、CSS解释器和样式布局、网页层次与渲染、绘图上下文、
2022-02-03 01:07:36
1269
原创 【读书笔记】【WebKit 技术内 幕(一)】浏览器架构与浏览器内核;chromium、webkit和blink的渲染过程;chromium、webkit的架构与代码结构;webkit2架构
浏览器架构与浏览器内核;chromium、webkit和blink的渲染过程;chromium、webkit的架构与代码结构;webkit2架构
2022-01-29 22:28:32
4078
原创 【读书笔记】【程序员的自我修养 -- 链接、装载与库(三)】函数调用与栈(this指针、返回值传递&临时对象构建&栈、运行库与多线程、_main函数、系统调用与中断向量表、Win32、可变参数、大小端
函数调用与栈(this指针、返回值传递&临时对象构建&栈、运行库与多线程、_main函数、系统调用与中断向量表、Win32、可变参数、大小端
2022-01-27 23:49:33
8225
原创 【读书笔记】【程序员的自我修养 -- 链接、装载与库(二)】进程虚拟地址空间、装载与动态链接、GOT、全局符号表、共享库的组织、DLL、C++与动态链接
进程虚拟地址空间、装载与动态链接、GOT、全局符号表、共享库的组织、DLL、C++与动态链接
2022-01-23 00:36:16
6189
原创 【读书笔记】【程序员的自我修养 -- 链接、装载与库(一)】线程模型(多对多);目标文件格式;静态链接;
目标文件格式;静态链接;线程模型、运行时库
2022-01-16 23:11:28
5657
原创 【chromium】WIN10编译Chromiumbb 记录;windows10 Chromium.bb环境搭建、clone、编译、VS调试;
win10 下 chromium.bb 项目的配置和编译记录
2022-01-02 12:39:06
1759
2
原创 pdf中矢量图提取出来,插入visio 或者 word,保持矢量图特性,十分清晰;
文章目录裁剪pdf设置裁剪框提取,选择对应裁剪的页提取另存为为.eps
2021-11-21 13:12:13
11063
11
原创 Altium designer AD原理图导入word文档、pdf,生成矢量图的方法;
文章目录参数选择-schematic -取消GDI+渲染文本+ ->减少渲染然后在复制到VISION里面,取消组合->变成矢量图将矢量图粘贴在word 中或者再生成pdf 就不会糊了参数选择-schematic -取消GDI+渲染文本+ ->减少渲染然后在复制到VISION里面,取消组合->变成矢量图将矢量图粘贴在word 中或者再生成pdf 就不会糊了...
2021-11-20 23:25:50
8682
1
原创 【FPGA】Modelsim RTL仿真;修改代码后再仿真,别关了重开;
文章目录第一次仿真写好testbench并配置testbench文件来仿真RTL仿真修改代码再次仿真recompilerestart第一次仿真写好testbench并配置testbench文件来仿真RTL仿真添加所有的信号,这种方法把所有中间信号都加进来了修改代码再次仿真只需要在library中recompile对应文件,再restart即可。recompilerestart...
2021-10-24 13:32:20
3670
4
原创 【操作系统】操作系统知识点整理B;李治军老师
什么是操作系统、上电到操作系统启动向下操作硬件,向上提供接口;计算机发展:图灵机(只能做一件事) - > 通用图灵机(能做很多事)- > 计算机(冯诺依曼存储程序思想)冯诺依曼思想:(存储程序的主要思想:)讲程序和数据存放到计算机存储器中,计算机在程序的控制下一步一步进行处理;过程:将程序放在存储区中,用PC指针指向在运行的指令,然后取值执行;(在运算器、控制器中执行)计算机上电过程:(主要包括:读入内存、初始化)BIOS:检查硬件、将引导扇区 读入
2021-10-05 11:17:29
519
原创 【C/C++】汇编解析:函数调用的压栈、弹栈过程;
文章目录前言常见指令待分析代码release 模式下分析 (单纯的压栈弹栈过程)debug 模式下分析 (主要是看rep 指令初始化的问题)总结前言首先知道release下就算关闭优化也和dubug下的汇编差了很多,主要是debug 要有很多调试信息存在;如果只需要分析函数调用过程,那么直接看关闭了优化的release 的代码即可;栈空间的开辟与释放,是没有默认初始化的过程的,直接减sp指针或者恢复sp指针即可;所以会存在报错:局部变量不初始化就直接使用;常见指令rep 指令主要是循环
2021-09-10 20:50:22
1280
1
原创 【C/C++】【面经】2022 华为 面经;(通软 方向)(更新:一面;二面;三面)
文章目录一面项目闲聊手撕总结二面项目闲聊手撕总结一面项目闲聊网络熟吗?讲一下用到的协议栈;项目介绍 + 每个部分了解 + 难点 + 成果量化;调试问题+仿真问题;(主要问了平时怎么仿真、调试,遇到的难点)华为软挑介绍一下;手撕二叉树遍历:递归、迭代;(发的leetcode链接,发现我提交过,就说再来一个)矩阵中战斗力最弱的 K 行;(…又给了简单题)总结基本都是问项目;基础知识问的比较少;二面项目闲聊用什么语言多,做过相应什么项目;list vector
2021-09-10 17:52:02
1522
1
原创 【IO事件】 【io多路复用】epoll的事件驱动;从多线程模型到单线程模型,再到IO多路复用模型的过程;
文章目录概念【并发】IO多路复用select/poll/epoll使用多线程、进程来实现;使用单线程来实现;selectpollepoll(Linux特有)同步与异步参考概念GDT :(全局描述符表/Global Descriptor Table)内核启动的时候,划分了用户、内核空间;BIO: (blocking I/O、阻塞IO)NIO :(non-blocking I/O、非阻塞IO) : 同步非阻塞就时,我发起一个IO操作,我去做其他的,隔一段时间再去问IO操作要结果AIO
2021-09-06 22:33:45
787
2
原创 【C/C++】【面经】2022 阿里巴巴 面经;(C++ 方向/CTO线)(更新:一面;二面)
文章目录一面手撕+闲聊简历+项目闲聊总结一面手撕+闲聊LRU ;不考虑空间,只考虑时间复杂度;先讲一下怎么实现;(双链表+hash)我写的都比较乱,面试官叫我封装一下;封装完了,可能是为了封装而封装,缺失了很多效率;(给我讲不要有重复代码的同时,也不要为了封装而封装)多线程的情况下,你这个lru 该怎么写;(我说最简单的只能进去就加锁,但是锁的粒度太大了,临界区太大了…违背了加锁的原则)他让我后面再去看看该怎么改;多级cache 的话,lru该怎么设计,多级cache 的话,怎样的一个协作、淘
2021-09-04 21:00:52
561
原创 【C/C++】【面经】2022 美团 面经;(移动端开发 方向)(更新:一面;二面;)
文章目录一面闲聊 +手撕基础一面闲聊 +手撕为啥想做移动端开发;有相关经验吗手撕:(讲思路、其他的解法)最大的回文子串;(说十分钟写完…)(写了动规,超过了十分钟了,又给了点时间)基础队列和栈;实际应用有啥;数组和链表;树和链表在应用场景上有什么差异;什么是平衡二叉树;有什么优势;什么是b树;红黑树的变种有什么;应用呢?快排时间复杂度;OSI 模型;为什么要分层;网络层协议有哪些;(IP、ARP、ICMP)传输层协议有哪些;tcp、udp 的区别; 应用有哪些;邮
2021-08-26 22:08:22
540
原创 【C/C++】【面经】2022 百度 面经;(C++ 方向)(更新:一面;二面;)
文章目录一面手撕基础知识总结一面手撕硬币一排,每个硬币有值,每次从最左、最右选择;选择K个;求选择到的最大值;快排堆排(讲思路即可)基础知识引用、指针;应用要注意什么;引用有存储单元吗;数组可以引用吗;TCP 握手挥手;有性能优化方向项目吗?(没。。)(讲了算法性能优化)(量化优化)总结面之前讲了一面只看比较基础的东西,果然问的比较少。可能方向不对应,没什么问的了;...
2021-08-24 17:18:39
410
原创 【C/C++】【面经】2022腾讯 面经;(wxg)(更新:一面;二面;三面;HR面;)
文章目录一面基础手撕总结一面项目问了很久,虽然都和互联网无关;后面也问到了,为啥做的嵌入式,来面互联网整个项目的实时性优化的一些点;算法实现难度在哪基础tcp 怎么保证的可靠;超时时间怎么算的,通常时间是多久;(RTO 根据RTT)进程线程进程通信共享内存,实际内存不够;(内存置换)全局、局部变量;初始化时机有什么区别;(main之前)动态库加载的时候会首先执行init初始化过程,static静态变量就是在这个过程中创建,在初始化完成之后,才把控制权交给main函数。
2021-08-23 12:56:19
2059
2
原创 【操作系统】操作系统知识点整理;C++ 实现线程池与windows 线程池的使用;
文章目录进程线程进程、线程和协程的区别和联系线程与进程的比较进程线程进程、线程和协程的区别和联系进程线程协程定义资源分配和拥有的基本单位程序执行的基本单位用户态的轻量级线程,线程内部调度的基本单位切换情况进程CPU环境(栈、寄存器、页表和文件句柄等)的保存以及新调度的进程CPU环境的设置保存和设置程序计数器、少量寄存器和栈的内容先将寄存器上下文和栈保存,等切换回来的时候再进行恢复切换者操作系统操作系统用户切换过程用户态->内核态-&g
2021-08-22 23:17:16
3190
原创 【踩坑记录】【C/C++】数组名与指针的关系;数组名取地址;数组名的解引用与取地址;
文章目录前序知识指针与数组名的区别验证一维数组二维数组参考前序知识获取变量类型的语句是:typeid(variable).name();sizeof函数在编译阶段起作用。指针与数组名的区别C专家编程 中有讲到,数组和指针在编译器处理时是不同的,在运行时的表示形式也是不一样的,并可能产生不同的代码。对编译器而言,一个数组就是一个地址,而一个指针就是一个地址的地址。数组名是不可修改的左值,不能直接对其赋值(定义时除外)。但可以用memcpy,strcpy等来进行间接“赋值”。讲
2021-08-20 21:39:27
454
原创 【C/C++】【面经】2022 寒武纪 面经;( 媒体软件方向 )(更新:一面;二面;)
文章目录一面项目基础总结二面项目基础手撕总结一面项目项目问了蛮多,以下问题都是项目展开的问题;基础中断 都用了哪些;多线程同步手段;互斥手段;(锁、)(信号量、条件变量)信号量、自旋锁简介;中断中应该用什么锁;(自旋锁;因为中断中不能睡眠、调度)为什么中断不能睡眠为什么在中断过程中不能进行睡眠用户态怎么进入内核态;怎么用内核的功能;(中断、系统调用、软件中断)static;volatile;预处理阶段都干嘛;(宏替换、头文件替换)可执行文件的段;bss段、讲解
2021-08-18 16:45:41
932
1
原创 【C/C++】【面经】2022 字节 提前批面经;( C++ 客户端)(更新:一面;二面;三面;)
文章目录一面二面OSC++手撕总结一面【C/C++】【面经】2022 字节跳动( C++ 客户端-教育方向 )提前批面经二面OS虚拟内存与物理内存;他们的区别;内存的交换是啥寻址方式有哪些;(讲了一会页表映射,具体问题没有理解,可能没涉及到)分页分段;区别及其应用;(内外碎片…)系统中断的过程;(保存上下文、中断程序、恢复现场、调度)内核态的理解;(隔离,os 层面包装内存空间,限制用户程序)C++智能指针每个讲一下;引用计数怎么设计;(引用构造都在什么时候加1)(深拷贝、浅拷
2021-08-16 15:25:40
646
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人