杂记
文章平均质量分 56
PGZXB
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
8086汇编复习手册
文章目录8086汇编复习手册8086平台基础大小端寄存器标志位寻址方式及其使用和注意事项8086对段寄存器使用的约定8086汇编模板(熟练记忆, 考试要写)8086汇编指令速查表常用DOS调用汇编子程序设计汇编常用技法汇编编程实战输入输出0.输入以回车结束的字符串1.输出有结束标志的字符串2.输出N进制数3.输入N进制数数组0.找出数组中的最大值1.插入元素到升序序列2.排序数组(冒泡排序)字符串0.比较字符串是否相等1.翻转字符串(同样适用于数组)综合示例0.输入字符串找出出现数量最多的字符输出该字符及其原创 2021-07-03 18:47:10 · 1515 阅读 · 1 评论 -
一个好用的Makefile for C++ program
利用Makefile自带的一些语法,我们可以写出一个较为通用的Makefile 有以下几个功能: make init : 在当前文件夹初始化项目 make clean : 清理项目 make run : 启动 make rerun : 清理、重新编译、运行 src = $(wildcard ./src/*.cpp) obj = $(patsubst ./src/%.cpp, ./obj/%.o, $(src)) includePath = ./include extArgs = -g -I $(in.原创 2021-03-05 09:42:14 · 311 阅读 · 0 评论 -
对象池/内存分配器的依赖问题
在昨天写C++ Json解析库时遇到了很难找的Bug,利用对象池管理不同类型的对象,这些对象不是相互独立的而是互相依赖的。这就导致了在最后对象池执行析构时释放所有的对象出现了问题,具体如下。 Node类,是一个泛化的值,底层利用union/variant以实现可以容纳Json要求的所有类型的值,Number,Null,True,False,String,Array,Object等等。其中String,Array和Object时特殊的,其中含有指针用来指向分配好的对象,这就涉及到了析构。 String类,其原创 2021-03-03 15:10:39 · 292 阅读 · 1 评论 -
对象池C++11实现
内存分配器 class MallocAllocator { public: MallocAllocator() = default; ~MallocAllocator() = default; void * allocate(SizeType size) { return ::malloc(size); } void * reallocate(void * ptr, std::size_t newSize) { return ::r原创 2021-02-27 20:51:59 · 307 阅读 · 0 评论 -
利用C++ Lambda优化多分支赋值
利用C++ Lambda优化多分支赋值 我们经常需要根据不同的条件分枝来获取一个变量一共后续使用, 通常我们会这么做。 //... Type res; switch (val) { case val0: res = Type(...); break; case val1: res = Type(...); break; case val2: res = Type(...); break; case val3: res = Type(...); break; .. } ... ... //... 上述代原创 2020-09-15 18:47:37 · 525 阅读 · 0 评论 -
极客时间 - 现代C++实战30讲期末测试盲点
极客时间 - 现代C++实战30讲期末测试盲点 目前C++语言已经不允许在异常规约里描述函数会抛出什么异常,而只能声明函数是否会抛出异常。 特殊成员函数不能是一个函数模板 用户如果声明了拷贝构造函数、移动赋值函数或析构函数,编译器就不会隐式声明移动构造函数。 MSVC是Windows上最主流的编译器,历史也最悠久。 Clang的独特优势是其模块化的设计,第三方软件可以利用Clang来帮助分析C++代码 Clang-Tidy是用于代码分析的,格式化工具是Clang-Format ...原创 2020-09-15 12:11:10 · 5095 阅读 · 0 评论 -
C++ lambda表达式简介及作用
C++ lambda表达式简介 C/C++的可调用对象 在C语言中,可调用对象仅有函数指针。但在C++中,可调用对象增加了两类, 其一是利用C++操作符重载实现的functor,functor本身是一个struct/class的实例,其特殊的地方在于重载了小括号(调用)操作符 其二则是C++2.0引入的lambda表达式,也成为匿名函数,其语法为 // lambda [ <捕获列表> ] ( <参数列表> ) [options] { <函数体> } // 返回值即为一原创 2020-09-04 14:17:47 · 2789 阅读 · 0 评论 -
C++中数组作为函数参数如何不用同时传入大小
C++中数组作为函数参数如何不用同时传入大小 在C/C++中如果将数组作为参数传入函数通常需要同时传入数组的大小, 在使用时总是带着一个尾巴, 总是显得有些赘余. 这是由于C/C++的原生数组实质上只是一个指针而已, 不像Java中的数组还带有一个存储大小的字段. 那么, C++中就真的没法优雅的只传入数组吗?答案是否定的, 虽然C++的原生数组不算是对象, 没有将大小也封装到数组中, 但是, C++的模板为我们提供了一个新的思路. 我们下面实现一个打印数组中所有元素的函数. 先来看通常的做法 //原创 2020-08-07 19:24:25 · 1050 阅读 · 0 评论
分享