杂记
文章平均质量分 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 · 1069 阅读 · 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 = ./includeextArgs = -g -I $(in.原创 2021-03-05 09:42:14 · 180 阅读 · 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 · 144 阅读 · 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 · 155 阅读 · 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 · 384 阅读 · 0 评论 -
极客时间 - 现代C++实战30讲期末测试盲点
极客时间 - 现代C++实战30讲期末测试盲点目前C++语言已经不允许在异常规约里描述函数会抛出什么异常,而只能声明函数是否会抛出异常。特殊成员函数不能是一个函数模板用户如果声明了拷贝构造函数、移动赋值函数或析构函数,编译器就不会隐式声明移动构造函数。MSVC是Windows上最主流的编译器,历史也最悠久。Clang的独特优势是其模块化的设计,第三方软件可以利用Clang来帮助分析C++代码Clang-Tidy是用于代码分析的,格式化工具是Clang-Format...原创 2020-09-15 12:11:10 · 1675 阅读 · 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 · 2415 阅读 · 0 评论 -
C++中数组作为函数参数如何不用同时传入大小
C++中数组作为函数参数如何不用同时传入大小在C/C++中如果将数组作为参数传入函数通常需要同时传入数组的大小, 在使用时总是带着一个尾巴, 总是显得有些赘余.这是由于C/C++的原生数组实质上只是一个指针而已, 不像Java中的数组还带有一个存储大小的字段.那么, C++中就真的没法优雅的只传入数组吗?答案是否定的, 虽然C++的原生数组不算是对象, 没有将大小也封装到数组中, 但是, C++的模板为我们提供了一个新的思路.我们下面实现一个打印数组中所有元素的函数.先来看通常的做法//原创 2020-08-07 19:24:25 · 827 阅读 · 0 评论