自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 资源 (4)
  • 收藏
  • 关注

原创 dynamic_cast浅谈

关于d2为空指针,很多人就问了,这不是转换吗?不能把指针基类的指针转成派生类?当然这是转换,也可以把基类转成派生类的指针。前提是它觉得转换是安全的前提下,如果你的基类指针指向基类,dynamic_cast会判定这个转换为。dynamic_cast是一个很有趣的转换,很多人说带上虚函数就好了,其实还需要打开rtti机制,否则很多情况是编译不过的。只有在Base* b2 = new Derive(),基类指向派生类,dynamic_cast会认为是。,才可以将Base指针转成派生类。

2023-05-26 16:51:18 123

原创 placement new

new(&heap)调用了operator new(size_t size, MyHeap* heap),看到这里,size谁传入的呢?你的代码中的 new(&heap) 会传入 sizeof(int) 作为 size 参数,因为你要构造的对象是 int 类型的。上面代码使用了placement new语法,别的可能都还好,看到new(&heap) int(0),第一次见的人可能微微一愣。我们换一个方式可能就更直观点:new int(0)。那么这里的new(&heap)就可以平替new的意思。

2023-05-25 12:35:32 88

原创 android11使用google test

android google test

2022-06-24 15:04:09 1077

原创 【C++】对vector的push_back的简单理解

对vector的一些加深理解

2022-06-17 14:40:39 1553

原创 二分查找一些小细节

二分查找

2022-06-13 11:22:00 81

原创 C++三五法则

1.如果定义了析构函数,则必须同时定义或者删除拷贝构造和拷贝赋值。2.如果定义了拷贝构造函数,那么必须定义或者删除拷贝赋值函数,否则会造成低效。3.如果定义了移动构造函数,那么必须定义或者删除移动赋值函数,会出错,删除可导致低效。4.如果定义了拷贝构造或者拷贝赋值,那么必须最好同时定义移动构造或者移动赋值,否则低效。...

2022-05-04 16:08:20 1104

原创 vim的全面教程

http://stevelosh.com/blog/2010/09/coming-home-to-vim/

2022-05-03 16:53:50 130

原创 64位平台C/C++开发注意事项

64位平台C/C++开发注意事项

2022-05-03 16:53:14 882

原创 64位平台C/C++开发注意事项

64位平台C/C++开发注意事项

2022-05-03 16:51:37 365

原创 架构设计和技术选型

本文仅给出架构设计时需要考虑的知识点,并不会对具体知识点做详细介绍。一、顶层架构Linux/Windows平台、CS/BS架构、大数据架构、应用领域(游戏、互联网、传统行业等)二、CS中的Client的技术选型1、GUI开发技术(1)微软技术体系MFC、WinForm、WPF、UWP(2)Java技术体系java AWT、java swing、javafx(3)Python技术体系Kivy、PyQt、PyGUI、Libavg、wxPython2、移动端开发技术原生应用:Android

2022-05-03 16:39:34 472

转载 C++学习 | C++ Implement的使用 | 消除 warning C4251 | 精简库接口

在编写C++动态库的过程中,我们常常会听到某个要求:请隐藏动态库头文件里类接口里的成员变量!或者自己在编写动态库时,突然意识到自己好像让调用者看到的信息太多了,而这些信息根本无需被调用者看到,往往调用者只需要接口函数而已,所以给他们接口函数就可以了。暴露动态库头文件类接口里的成员变量有很多坏处:  1、增加头文件更新次数。如果成员变量不被隐藏,则每次修改成员变量都需要给调用者更新头文件。  2、暴露给用户太多信息。编写库的目的一个是方便,另一个就是私密性,让类的实现部分在用户端不可见,如果过多地暴露成

2022-05-02 16:23:51 520

转载 600 条最强 Linux 命令总结

600 条最强 Linux 命令总结

2021-12-10 10:22:00 79

转载 C语言字符串操作总结大全(超详细)

本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下1)字符串操作strcpy(p, p1) 复制字符串strncpy(p, p1, n) 复制指定长度字符串strcat(p, p1) 附加字符串strncat(p, p1, n) 附加指定长度字符串strlen§ 取字符串长度strcmp(p, p1) 比较字符串strcasecmp忽略大小写比较字符串strncmp(p, p1, n) 比较指定长度字符串strchr(p, c) 在字符串中查找指定字符strrchr(p

2021-11-02 12:03:36 6168 2

原创 C语言和设计模式

C语言如何在快速和模块化间进行选择是一个值得思考的问题C语言和设计模式

2021-11-01 10:19:17 217

原创 arm自旋锁和读写锁汇编源码解读

arm自旋锁和读写锁汇编源码解读

2021-10-26 15:17:41 162

原创 Linux内存初始化

Linux内存初始化

2021-10-26 14:28:03 137

原创 C语言中volatile关键字的作用

C语言中volatile关键字的作用

2021-10-26 14:26:27 144

原创 盘点linux内核宏定义若干技巧

盘点linux内核宏定义若干技巧

2021-10-22 16:23:21 127

原创 linux安装查询书册

$sudo apt-get install glibc-doc$sudo apt-get install manpages-posix manpages-posix-dev使用man -k pthread或apropos pthread可以查找到当前manpages中关于pthread的手册完成!

2021-09-28 17:24:55 125

原创 CPU和GPU核心对比图

2021-09-27 14:54:06 491

原创 终于有人把RISC-V讲清楚了(CPU单指令集架构)

终于有人把RISC-V讲清楚了

2021-09-27 14:18:47 1561

原创 常用电路标识

2021-09-26 16:18:50 259

原创 计算机组成原理

第一个部分:经过编译、汇编、链接后,我们就得到了一个可执行文件。第二部分:可执行程序经由加载器加载到内存中,再由CPU从内存中读取指令和数据,来开始真正的程序。

2021-09-26 14:25:41 69

原创 技术选型杂谈

选择拥有强大社区支撑的开源技术确保技术前进步伐你需要使用你所选择的软件技术,快速地实现应用程序的构建。记住一句话:好的技术栈永远跑在用户需求前面学会从业务端开始思考先验证,后使用重视经验技术选型是个很需要经验的活,得有大量的信息积累和输入,再根据具体现实情况输出一个结果。我们在选型的时候最忌讳的是临时抱佛脚、用网上收集一些碎片知识来决策,这是非常危险的,我们得确保自己所有思考都是基于以前的事实,还要弄清楚这些事实背后的假设,这都需要让知识内化形成经验。拒绝技术会议驱动开发我们可以通过技术大会学习到最前沿的技

2021-07-30 10:25:23 65

转载 lex yacc学习

lex yacc学习

2021-07-22 16:15:07 59

原创 常用变量名命名单词

书到用时方恨少,每逢命名就挠头。不求多么花里胡哨,只求熟能生巧。1. 动词 bind 绑定 resolve 解析,处理 parse 解析 handle 处理 process 处理 display 展示 merge 合并 call 调用 run 调用 refresh 刷新 load 载入,加载,装载 init 初始化 obtain 获取 access 访问,触及 control 控制 r

2021-07-08 15:33:25 848

原创 QT信号槽机制详解

深入理解信号槽(一) http://devbean.blog.51cto.com/448512/417658深入理解信号槽(二) http://devbean.blog.51cto.com/448512/424778深入理解信号槽(三) http://devbean.blog.51cto.com/448512/426999深入理解信号槽(四) http://devbean.blog.51cto.com/448512/428364...

2021-07-05 15:13:52 99 2

原创 C语言开源项目推荐

WebbenchWebbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:http://home.tiscali.cz/~cz210552/webbench.htmlTinyhttpdtinyhttpd是一个超轻量型Http Server,使用C语言开发...

2021-06-30 11:09:13 564

原创 C++海量数据处理

问题实例:给你A,B两个文件,各存放50亿条URL,每条URL占用64字节,内存限制是4G,让你找出A,B文件共同的URL。如果是三个乃至n个文件呢?根据这个问题我们来计算下内存的占用,4G=2^32大概是40亿*8大概是340亿,n=50亿,如果按出错率0.01算需要的大概是650亿个bit。现在可用的是340亿,相差并不多,这样可能会使出错率上升些。另外如果这些urlip是一一对应的,就可以转换成ip,则大大简单了。问题实例:1).海量日志数据,提取出某日访问百度次数最多的那个IP。IP的数目还

2021-06-30 10:56:49 452

原创 QT控件汇总(后续慢慢更新)

1.QCheckBox 复选框(CheckBox)控件(包含Text Label)2.QcomboBox 单击按钮,可在弹出的选项中选择一个3.QcommandeLinkButton Windows Vista风格的命令链接按钮4.QtimeEdit 编辑或显示时间的控件5.QdateEdit 编辑或显示日期的控件6.QdateTimeEdit 编辑或显示时间和日期的控件7.Qdial 用于描叙仪表盘样式8.QspinBox 整数旋转框(SpinB

2021-06-29 17:17:35 2194

原创 多线程 算法 C++ 好的博客

博主:MoreWindows

2021-06-17 10:18:31 58

原创 好书3--android的好书

《深入理解android内核设计思想》《深入理解Android内核设计思想》适用于Android4.3以上的版本。全书从操作系统的基础知识入手,全面剖析进程/线程、内存管理、Binder机制、GUI显示系统、多媒体管理、输入系统等核心技术在Android中的实现原理。书中讲述的知识点大部分来源于工程项目研发,因而具有较强的实用性,希望可以让读者“知其然,更知其所以然”。全书分为编译篇、系统原理篇、应用原理篇、系统工具篇共4篇22章,基本涵盖了参与Android开发所需具备的知识,并通过大量图片与实例来

2021-06-03 17:46:25 155 4

转载 android系统架构

android系统架构

2021-06-03 17:30:15 37

原创 设计模式好文章

C++JAVA

2021-06-02 14:19:08 61

原创 一句话设计模式

1.简单工厂模式(Simple Factory)是由一个工厂对象决定创建出哪一种产品类的实例,是工厂模式家族中最简单实用的模式。2.工厂模式(FactoryMethod)定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。为了遵循扩展开放,修改关闭原则,将简单工厂类转换为工厂方法接口,将其Switch分支分离成子类去继承工厂方法接口类,顺利的将创建对象的过程延迟到子类。3.抽象工厂模式(AbstractFactory)提供一个创建一系列相关或相互依

2021-06-02 14:16:08 51

原创 好书2----高级C/C++编译技术

米兰·斯特瓦诺维奇编著的这本《高级C\C 编译技术》从多个角度全面、系统地讲解多任务操作系统中编译、链接、装载与库的内幕和技术细节,为深入理解和掌握系统底层技术提供详实参考和实践指南。与纯粹讲解理论与技术细节的书不同。本书一方面对基本的理论进行了阐述,另一方面则聚焦于C/C 使用静态库和动态库的一些注意事项,并举例说明如何解决实际的链接与装载问题。此外,本书尽量使用通俗易懂的语言来阐述这些知识,并补充了大量示例,避免让读者整天纠结于枯燥的理论。本书共14章,其中第1章至第4章对多任务操作系统、程序生命周期

2021-06-02 10:39:10 532 1

原创 x86系列CPU里的主要寄存器

寄存器名功能eax(累加寄存器)存储执行运算的数据和运算后的数据ebx(基址寄存器)存储数据内存的起始地址ecx(计数寄存器)计算循环次数edx(数据计数器)存储数据esi(源基址寄存器)存储数据发送源的内存地址edi(目标基址寄存器)存储数据发送目标的内存地址ebp(扩展基址指针寄存器)存储数据存储领域基点的内存地址esp(扩展栈指针寄存器)存储栈中最高位数据的内存地址...

2021-06-02 10:14:37 370

转载 编译和解释的区别(划个重点啊)

编译和解释的区别

2021-06-02 09:46:36 68

原创 程序运行的总结

我们学习语言,第一步无非是想让程序跑起来,如果能深入形象化的理解程序这个过程,后面设计框架、优化将起到事半功倍的效果。 假设我们自己就是一个计算机,我们如何认识程序?抱歉,我不认识程序,C语言、JAVA、C++、PYTHON??过于复杂了。。我只认识我自己的母语也就是native,这里的母语也就是机器语言。这时候编译器就起了一个重要的作用,把各种语言写的源代码转为了obj(目标文件) 这时候,计算机就认识了。 到这一步,计算机是认识了,但是并不可执行,这时候链接器就随之出现了,它将多个目标...

2021-06-01 15:26:27 161

原创 好书1--程序是怎样跑起来的

《程序是怎样跑起来的》对计算机组成原理感兴趣,又读不下厚书的可以试试这本,小型组成原理,语言通俗易懂。

2021-06-01 11:01:02 144

C++11新规范(维基百科中文)本地打开可用

C++11新规范(维基百科中文)本地打开可用,学习神器

2020-11-27

浏览器如何工作.docx

WebKit 是一个开源的浏览器引擎,与之相对应的引擎有Gecko(Mozilla Firefox 等使用)和Trident(也称MSHTML,IE 使用)。同时WebKit 也是苹果Mac OS X 系统引擎框架版本的名称.

2020-03-05

Android-Gradle.pdf

针对大型android项目开发,对于构建android项目有极大的帮助,市面上一些都是讲解android的控件,android的方法,却没有大型项目洗礼,也没有项目架构方面的资料。此资料会让你懂得如何去架构android并在此基础上做开发。

2020-01-11

Android Widevine概论.docx

widevine是google在ICS版本上推出的一种DRM数字版权管理功能,依赖这个功能,就能从google指定服务器上下载经过google加密的版本文件。 他的背景如何?他如何去集成呢?文档有详细介绍

2019-06-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除