随笔分类 - C++语言
摘要:使用float128类型以提高精度。 float128不是标准库类型而是实现定义的,包含在quadmath.h库中。 (1)该类型的使用必须包含quadmath.h头文件,并且要在编译选项中指定:-std=gnu++11 -lquadmath; (2)该类型的字节大小为16位;(在本机使用sizeo
阅读全文
摘要:拿个单调队列的题做试验: 使用STL的代码 #include<bits/stdc++.h> using namespace std; const int N=2e5+10; int n,m,x,f[N]; deque<int>q; int main(){ freopen("test.in","r",
阅读全文
摘要:OI界都说,STL速度很慢,很多STL内部的函数常数很大,运行速度都很不理想,很多时候都是手写数组来模拟的。 但是实际上,STL的速度并非那些人所说的那样,运行速度很慢,这篇文章就来破解掉这个谣言。 1.关于泛型 STL的库都是用泛型来写的,应该不用举例了吧: stack<int>s; deque<
阅读全文
摘要:1.窗口缓冲区: 控制台上所有的文字信息都是存储在一个窗口缓冲区的地方。 默认的控制台,窗口大小为80*25,指的是80列,25行。 而缓冲区的大小,默认是80列,300行。 因此,控制台窗口是可以滚动的,可以垂直滚动,因为共有300行。而默认的情况,横向是无法滚动的,因为横向只有80列。 在缩小窗
阅读全文
摘要:无意之间想到的问题,节选自C99标准: 6.3.1.5 Real floating types 1 When a float is promoted to double or long double, or a double is promoted to long double, its value
阅读全文
摘要:#前言 这两天又在首页看见指针的文章了,随手再来写一篇。本来想先写static的下集的,后来发现似乎写的有些问题,草稿已经在写了,预计后面不久再发布。 指针其实是C++或是C语言中必不可少的一部分。即使说,很多情况下我们并不会直接使用到指针,但是指针的一些知识同样在其它的地方(哪怕看似和指针无关的地
阅读全文
摘要:如果是从中间来的,建议先从第一篇看起:https://www.cnblogs.com/jisuanjizhishizatan/p/16241991.html #第3天:加减乘除运算 今天我们来继续完善我们的加减乘除的指令。上一次我们支持了mov指令,这次我们来继续写add,sub,mul,div等指
阅读全文
摘要:#1000位斐波那契数 描述 斐波那契数列是按如下递归定义的数列: F1=1 F2=1 Fn=Fn−1+Fn−2 因此斐波那契数列的前12项分别是: F1=1 F2=1 F3=2 F4=3 F5=5 F6=8 F7=13 F8=21 F9=34 F10=55 F11=89 F12=144 第一个包含
阅读全文
摘要:题目描述: 215=32768,而3276832768的各位数字之和是3+2+7+6+8=263+2+7+6+8=26。 21000的各位数字之和是多少? 解法:高精度模拟 #include<bits/stdc++.h> using namespace std; int ans[1000]; int
阅读全文
摘要:如果是从中间来的,建议先从第一篇看起:https://www.cnblogs.com/jisuanjizhishizatan/p/16241991.html 第2天:控制寄存器 上一次,我们写了最基础的简单架构,接下来我们就要开始用上我们的寄存器了。 本次的成品测试代码是这样的: mov eax 3
阅读全文
摘要:更新于2022.5.7 15:00 0.前言 1.从argv[1]开始 今天为止已经写到第5章了,后面我考虑逐个放出来,后面其实每篇难度都不大
阅读全文
摘要:第1天:从argv[1]开始 先从命令行参数讲起吧。 现今的人们,尤其是写大型的项目,一般都用IDE。我们没那么高级,只是先从一个编译器做起,不需要IDE。对于编译器的调用,本质就是给一个源代码进去,经过对源代码进行分析,然后出来一个结果。那么对于源代码文件,传送给编译器,一般使用命令行参数。 C:
阅读全文
摘要:#前言 很多问题,看似很难,但是只要一点一点开始做起来,往里面添加功能,刚开始似乎是一个微不足道,甚至不能称之为“编程语言”的东西,但到了最后,你就会发现,你做出来的东西就越来越像一个真正的编程语言了。 (预计30天) 本文做出的东西,是一个模仿汇编语言的东西,汇编语言是一个很难懂的语言,除了编写操
阅读全文
摘要:最重要的一点,'\b'的意思不是退格,而是把光标前移一位。在输出'\b'的时候,本质上字符串是不会有变化的。 而对于"\b\n"这样的输出信息,由于'\n'也仅仅是光标的移动操作(把光标移动到下一行开头),因此'\b\n'不会修改任何后面的字符。 做一个实验(在Windows环境下,为了方便使用了w
阅读全文
摘要:#0.前言 这个系列基本上是一月一更到两月一更 今天写一篇关于static的,内含大量干货,做好准备 #1.基础知识的回顾 ##1.1.内存的种类 一般来说,我们之前已经讲过的变量(或者说是内存)可以大体分为这样几种: 全局变量 局部变量,也称为自动变量 使用malloc分配的区域 常量、字符串字面
阅读全文
摘要:这是我之前的文章: https://www.cnblogs.com/jisuanjizhishizatan/p/16149500.html 对于typeid,可以使用如下的方法输出它的名字,本质上name()方法返回的是一个string类型的字符串。 cout<<typeid(变量名).name<<
阅读全文
摘要:先看题目 物品不能分隔,必须全部取走或者留下,因此称为01背包 (只有不取和取两种状态) 看第一个样例 我们需要把4个物品装入一个容量为10的背包 我们可以简化问题,从小到大入手分析 weight value 2 1 3 3 4 5 7 9 先考虑物品数量为1的情况: 把前1件物品放入容量为1的背包
阅读全文
摘要:#include<bits/stdc++.h> #define TRUE ((_BOOL)1) #define FALSE ((_BOOL)0) struct _BOOL{ char status; _BOOL(){ status=0; } _BOOL(int x){ if(x>0)status=1
阅读全文
摘要:#include<bits/stdc++.h> using namespace std; struct Array_iterator{ int *ptr; void operator++(){ ptr++; } int operator*(){ return *ptr; } bool operato
阅读全文
摘要:有人问:不用stdio.h能在控制台输出信息吗? 在Windows下,可以直接使用Windows API来完成,最近找到了一个函数WriteConsole,使用这个函数来在控制台输出信息。 #include<windows.h> int main(){ const char *str="Hello,
阅读全文