C++:强制类型转换

C中类型转换

1
2
3
4
5
double x = 2.333;
int y = (int)x;
int z = int(x);

char* a=(char*)malloc(sizeof(char)*8);

旧式类型转换不明了,查找错误较为困难,C++中建议使用C++风格的类型转换

cast-name<type>(expression)

阅读全文 »

C/C++:type用法详解

用途一:类型别名

1
2
typedef char* PCHAR;
PCHAR pa,pb;//等价于 char *pa,*pb;

用途二:struct别名

1
2
3
4
5
6
//c中不能用是struct [类名]来定义,不能只用类名,typedef可以简化代码
typedef struct{
int x;
int y;
}rectangle;
rectangle p;
阅读全文 »

OOD:SOLID设计原则

SRP:单一职责原则(Single Responsibility Principle)

任何一个软件模块都应该有且仅由一个被修改的理由

"There should never be more than one reason for a class to change."

classDiagram
    class Employee{
    +calculatePay
    +reportHours
    +save
    }

例如有一个员工类,包含由CFO需要的calculatePay(),COO需要的reportHours,CTO需要的save()。由于在一个类中,绝大多数程序猿会为避免代码重复,单独实现一个regularHours()函数。

阅读全文 »

I/O复用

概述

I/O复用即可以同时监视多个I/O状态的能力,例如stdin,stdout,tcp等。

I/O模型

阻塞式I/O

阅读全文 »

atomic

原子操作:不会被线程调度机制打断的操作,原子操作基于处理器支持

原子操作的实现

原子锁:使用原子操作实现的锁

原子操作可以大幅减少互斥锁的时间开销,但也会带来调试困难。

阅读全文 »

尝试多种方法后,依旧对于一些复杂公式处理存在问题,marked和kramed都不能顺利解决,即使改了部分js文件。

解决方法

直接换用pandoc解决

1
2
npm uninstall hexo-renderer-marked --save
npm install hexo-renderer-pandoc --save

pandoc的markdown规范

阅读全文 »

特殊关系

等价关系

Definition

设R是非空集合A上的关系,如果R是自反的、对称的、传递的,则称R为A上的等价关系(equivalent relation).

以n为模的同余关系

在Z上以n为模的同余关系R中,一般记xRy为\(x\equiv y(mod n)\)(即同余式)或\(Res_n(x)=Rex_n(y)\).其中\(Res_n(x)\)表示x除以n的余数;

阅读全文 »

函数

函数的定义

Definition

设f是集合A到B的关系,如果对每个\(x\in A\),都存在唯一的\(y\in B\),使得\(<x,y>\in f\),则称关系f是A到B的函数或映射,记为\(f:A\rightarrow B\).A为函数的定义域,记为\(domf=A\);f(A)为函数f的值域,记为ranf.

Definition

所有从A到B的一切函数构成的集合记为\(B^A\): \[ B^A=\{f|f:A\rightarrow B\} \]

函数的类型

阅读全文 »
0%