孤桐秘虚鸣,朴素传幽真。
ฅ'ω'ฅ♪
程序转化语义

程序转化语义 考虑以下代码 #include <bits/stdc++.h> using namespace std ; class Vector { public: static int cnt ; int x, y ; Vector(int x=0, int y=0){ this->x = x ; this->y...

指针语义

指针语义 首先观察以下代码 #include <bits/stdc++.h> using namespace std ; class A { public: int arr[100] ; void foo() { cout<<"A:"<<arr[10]<<'\n' ; } }...

全局对象

全局对象 考虑以下程序片段 Matrix identity ; int main() { // identity 必须在这被初始化 Matrix m1 = identity ; ... // identity 必须在这被摧毁 return 0 ; } 如果这种global obj存在constructor和destructor的话,我们说它需要静态初始化...

Schwartz counter

Schwartz counter Schwartz计数器 (以Jerry Schwartz的名字命名,当时他设计了IOStreams库的基础,现在已成为标准;请注意,不能将许多奇怪的选择归咎于他,因为这些选择已标记在原始设计上) 主要是为了控制 需要跨越模块做静态初始化 的 Obj 的相依顺序。 例如现在以下文件 Foo.h class Foo { Foo::Foo() ; } ; ...

Data member的存取

Data member的存取 参考以下这段代码 Point3d origin; origin.x=0.0 现在我们想知道x的存取成本是什么。 答案需要视x和Point3d如何声明而定。 x可能是个static member,也可能nonstatic。 而Point3d可能是个独立的class,也可能是单一继承而来,也可能是多重继承或虚拟继承而来。 除此之外,我们还希望知道通过以下两种方法进行存...

Data Member的布局

Data Member的布局 已知下面一组 data members: class Point3d { public: // ... private: float x; static List<Point3d *> *freeList; float y; static const int chunkSize=250; float z; }...

Data Member的绑定

Data Member的绑定 考虑下面的这段程序代码 //某个foo.h头文件,在此处含入 extern float x; //另一个文件 class Point3d { public: Point3d(float,float,float); // 问题:被传回的x是哪一个? float X() const {return x;} // 问题:被设定的x是哪一个? ...

Data语意学——重新学习cpp

Data语意学 考虑以下结构 class X{ }; class Y : public virtual X { }; class Z : public virtual X { }; class A : public Y , public Z { }; 上述X Y Z A没有任何一个class内含明显的数据。 试问他们的大小各自应该为多少? 结果是 X:1 Y:8 Z:8 A:12 特别地,...

关键词带来的差异

关键词带来的差异 关键词的差异主要是Cpp努力维护与C之间的兼容性而带来的 。 比如,如果Cpp独立于C,就不需要判断下面一行代码其实是一个 函数调用 而不是一个函数声明 //在此并不知道是一个declaration还是invocation int (*pf)(1024) ; //因为整数常量1024,知道了是一个invocation 在此出现了一种 “向前预览“ 的行为 而在下面的一个声明...

对象模式——重新学习Cpp

Cpp对象模式 Cpp中,Class data member分为 static 、nonstatic,Class member functions分为 static、nonstatic、virtual三种。 先给出一个Point声明 class Point { public: Point(float xval) ; virtual ~Point() ; float x() ...

关于Cpp对象——重新学习Cpp

关于Cpp对象 前言 在C语言中,“数据”和“处理数据的操作”是(或者说应当是)分开声明的, 也就是说,语言层面上并没有支持”数据与函数“之间的关联性/ 这种程序方法称为 程序性 的(procedural), 由一组”分布在各个以功能为导向的函数中“的算法所驱动, 处理的是共同的外部数据。 所以在C语言中经常能见到以下的函数模式。 void foo_1(struct point *output, ...

C与Cpp的区别——重新学习Cpp

C & CPP [TOC] Cpp和C的区别 Cpp是C的超集,兼容大部分C的语法的结构。 设计思想 CPP面向对象,具有封装、继承、多态三种特性; C是面向过程的结构化编程。 关键字 数量:C99有32个关键字,CPP98有63关键字。 具体 struct:C中不能放函数,只能放函数指针;Cpp中可以放函数 。 malloc:C中可以将其返回值赋给任意类型的...

防卡常的奇技淫巧?

防卡常的奇技淫巧? 读优跟快速输出 这个东西应该很常见 直接上我现在在用的板子 namespace IO { const int MX = 4e7; char buf[MX]; int c, sz; void begin() { c = 0; sz = fread(buf, 1, MX, stdin);...

指针的一些有趣现象

指针的一些有趣现象 常量折叠 首先看下面一段代码 #include <bits/stdc++.h> #define pf(a) printf("%d\n",a) ; using namespace std ; signed main() { const int num_1 = 10 ; int *ptr_1 = const_cas...

ACM_广义表实现板子

ACM_广义表实现板子 广义表 #pragma comment(linker,"/STACK:1024000000,1024000000") #pragma GCC optimize(2) #include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #...

ACM_队列实现板子

ACM_队列实现板子 循环队列 #pragma comment(linker,"/STACK:1024000000,1024000000") #pragma GCC optimize(2) #include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #...

ACM_栈板子

ACM_栈板子 栈实现(数组) /* . ';;;;;. '!;;;;;;!;` '!;|&#@|;;;;!: `;;!&####@|;;;;!: .;;;!&@$$%|!;;;;;;!'.`:::::'. '!;;;;;;;;!$@###&am...

ACM_线性表板子

ACM_线性表板子 B话少说,这里是用来存板子的 数组实现: /* . ';;;;;. '!;;;;;;!;` '!;|&#@|;;;;!: `;;!&####@|;;;;!: .;;;!&@$$%|!;;;;;;!'.`:::::'. '!;;;;;;...

洛谷p4931烧情侣

ACM_洛谷p4931烧情侣 七夕节到了,摸了几天鱼之后给自己找了一道数学题做做。 P4931 情侣?给我烧了!(加强版) 大体意思……嗯,是一道有趣的数学题。 题意 首先,找k对情侣就坐, 同理 n排中找k排也是同时有 k! 并且k对情侣各人可交换,有 即一共有 做到这里发现其实很简单呢 问题是剩下的n-k对怎么排?既要考虑各对“完整”与否,也要考虑相对位置?有点错排的味道 设出 G(x)为 x...

重载板子

存几个自用的重载板子a'w'a 以一个复数类为例 #include <bits/stdc++.h> #define selcal(a) this->dig_real = this->dig_real a temp.dig_real , this->dig_virt = this->dig_virt a temp.dig_virt ; usi...

游說萬乘苦不早,著鞭跨馬涉遠道。

阿凌的貓爬架

幸會,

激活Ubuntu

转到“设置”以激活Ubuntu。

R0's board.