自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 检测()括号的匹配情况

bool bracheck(const string& str) { //由于只有一种括号,这个程序不必用栈. int bras = 0;//左括号的数量. for (auto i : str) { if (i == '(')bras++; else if (i == ')') { if (!bras)return false;//没有可供匹配的左括号 else bras--; } } return bras == 0;//不应该存有括号. } ...

2020-09-07 21:37:19 150

原创 用块链实现的栈

这种块链栈在容量可以动态拓展的同时,节省了大量的new操作和delete操作,从而提高了效率. template<typename T, int patchsize=128>//默认模板参数. class patchstack { struct patch { patch* lastptr, * nextptr; T matters[patchsize];//不必用array.因为这个模板本身保存了size信息. patch(patch* lastp) :lastpt

2020-08-30 15:17:53 156

原创 匿名联合体:定义类成员变量的别名

有的时候也许会需要对某些成员变量起多个名字. 例如:希望定义一个浮点向量,同时可以充当一个复数点: struct ... { double y,x; } 希望可以通过名字’im’作为y的别名,'re’作为x的别名. 不可以直接使用引用,如 struct ... { double y,x; double& im=y;double& re=x; } 它实际上相当于引入了新的成员. 用以下方法就完好解决了别名的问题: struct { union{double y;double im;};

2020-08-27 17:54:08 394

原创 特化的大数类:只支持与无符号四字整数的乘法运算

效率:对于一万的阶乘,可以瞬间出结果。 #include<cstdio> #include <cassert> //特化的计算。若乘0,则会出错。 //采用int_max进制。恰好可以直接分解为16进制。 //检验了几十的阶乘,结果是正确的。 //缺点:内存有连续依赖。 class mutiee { static const int maxlen = 1000000;//100万位的intmax进制,可以容纳2^(3200万)的数字,也就是一千多万位十进制。这对应于一个正常情况下.

2020-08-03 13:27:27 197

原创 c++: 符号重载:实现特定场合下的bool array[double][double]。

//【c++的自由度高到足以进行语法扩展。】 //【下边对mandelbrot set进行语法扩展。】 //【这定义了一个特殊的【实数集下的bool数组。】】 //mandbrot m; //m[i][j]=true/false。i,j是double值。 //true/false取决于复数点是否符合"属于mandelbrot集合"的判定条件。 //因此可以将m[i][j]总集看作一个double粒度的数组。而其中的语法也正是最常用的数组语法。 //注意"半参(half)"类的使用:它是一个函数的变量表赋值.

2020-07-09 11:46:02 249

原创 c++: map库的应用:结合普通枚举 实现 字符串枚举

#include<assert.h> #include<stdarg.h> #include<string> #include<map> using std::map; using std::string; typedef map<string, int>strint; class strint_serv//这个类绑定在函数中作为static使用。 { private: strint si; int head; public: strint_

2020-07-08 12:20:54 1133

原创 c++:set库的应用:维护一个二维bool空间

#include<stdio.h> #include<set> using std::set; //【假定int就是32位,longlong就是64位。】 //支持点计数操作。 //boolspace利用了索引查找和二叉查找(set)。 class boolspace { private: class booltree { private: long long join(int a, int b) { int joiner[2] = { a,b }; return *(lo

2020-07-07 13:35:38 379

原创 一个scanf用例

#include<stdio.h> //"scanf里面的任何%都至少要匹配1个字节",结合断路特性这实在是太讨厌了。 //通过分开的scanf,实现了匹配0~1个字节的功能。 int scanffunc(char* funcname,int* a,int* b) { int ign = 0;//若是char,会导致栈崩溃。//坑。 if (scanf("%99[a-zA-Z]", funcname) == false)return __LINE__; scanf("%*[ \n\t]")

2020-06-20 12:38:40 212

原创 怎么在cdsn文章中直接上载一个exe程序

众所周知,很多网站支持上载png格式的图片,对于很多其他种类的资源则需要以链接等形式发送。但是,只要网站不对png图进行进一步压缩,就可以以以下方式完好地发送文件了。注意以下源码是一对程序。了解这对程序的原理之后,就可以试着用第一个程序编译出的东西解码代码之后的程序了,它就是第二个程序编译后的可执行文件。 //改进:改用自带压缩的png格式。 #if 1 #include<stdio.h> #include<graphics.h> #include<math.h> boo

2020-06-20 11:15:20 240 1

原创 访问二叉树的通用非递归方法(延申版)

访问二叉树的统一办法。 请重视代码下边的注释,特别是注意函数iterator2,它完全扩充了树的遍历思路。在这基础上,可以在这之前srand来进行进一步封装。 进一步,iterator可以是任意的输出0~5序列的函数。 typedef int elem; struct binode { elem val; binode* left, * right; }; #define totree 0 #define tonode 1 struct task { binode* target; int todo

2020-06-11 02:05:43 141

原创 比较特别的生成n维数组的方法

比较特别的生成n维数组的方法。 #include<stdio.h> //n维数组代码生成器。 void _ndgenerator(int n) { if (n <= 0 || n > 26) { printf("\n[n must be within 1~26.]\n"); return; } printf("\nstruct _%ddim\n{\n", n); printf("\tint* p;\n"); printf("\tint A"); for (in

2020-06-06 16:36:21 287

原创 动态分配的二维数组,及其应用

动态分配的二维数组。并用这个它实现Game of Life。 #include<stdio.h> #include<stdlib.h> #include<windows.h> #include<time.h> struct twod//two dimension { int* p; int X, Y;//数组p[X][Y] twod(int xsize, int ysize) { if (xsize <= 0 || ysize <= 0

2020-06-06 15:04:17 228

原创 利用类实现rand函数,以及相应的优化

在实践中有可能需要几个独立的伪随机函数,以下的方法可以很方便地满足这个需求: class random { public: random(unsigned r, unsigned pa, unsigned pb, unsigned pc) :R(r), a(pa), b(pb != 0 ? pb : 2), c(pc) { ; } unsigned rnd(void) { R = a *...

2020-04-17 18:13:28 330

原创 保存二叉树,以及在程序间传递二叉树

对这个标题感兴趣的话,就直接来看下边的代码吧! 是借助文件操作来传递的。 //以下代码完整地展示了将一个二叉树结构存储为文件形式,并恢复为二叉树的过程。其中展示了一个玩具版的通信过程。(很容易拓展为程序间传递二叉树的情形,只要两个程序含有相同的函数组即可。) //适合与数据域大小固定,且不含指针的情况。 //我在此承认它效率不高,属于重复造轮子,但是我想这个东西很还是适合初学者学习的。 //请逐一...

2020-04-10 17:01:06 341

空空如也

空空如也

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

TA关注的人

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