- 博客(69)
- 收藏
- 关注
原创 相异代表系
设Y是一个有限集合,而AA1A2An是Y的n个子集族(Ai⊆Y对于Y的元素的一个族e1e2……en,如果满足∀i∈1nei∈Ai,则这个族被称为A的一个代表系(system of representative),简记为SR。如果在一个代表系内,元素ei都是不同的,那么e1e2……en。
2025-10-18 01:02:05
280
原创 鸽巢原理与使用
把n1个物体放入n个盒子,至少有一个盒子包含至少2个物体反证法证明:假设不存在一个盒子包含至少2个物体,可以得到每个盒子最多1个物体,可以得到n个盒子中最多包含n个物体,与总共n1个物体矛盾恰好型:将n个物体放入n个盒子,且没有一个为空,则每个盒子恰好1个物体将n个物体放入n个盒子,且没有一个盒子放入超过1个物体,则每个盒子恰好1个物体平均原理:如果把q1q2...qn−n1个物体放入n个盒子,则必然有一个盒子包含q1。
2025-10-16 16:25:36
278
原创 莫比乌斯反演&容斥定理
设⩽\leqslant⩽是定义在SSS上的关系Ⅰ 自反性:对任意x∈Sx\in Sx∈S,有x⩽xx\leqslant xx⩽x;Ⅱ 反对称性(即反对称关系):对任意x,y∈Sx,y \in Sx,y∈S,若x⩽yx\leqslant yx⩽y,且y⩽xy\leqslant xy⩽x,则x=yx=yx=y;Ⅲ 传递性:对任意x,y,z∈Sx,y,z\in Sx,y,z∈S,若x⩽yx\leqslant yx⩽y,且y⩽zy\leqslant zy⩽z,则x⩽zx\leqslant zx⩽z。(S,⩽
2025-10-13 18:24:53
415
原创 15.typescript自定义类型(type&interface&class)
id: number;email?: string;// 可选属性//只读属性//方法//继承接口abstract class AbstractUser {//抽象类使用abstract修饰//访问修饰符// 公开(默认)// 私有// 受保护constructor(name: string,age:number,sex:number) { //构造方法//抽象方法,继承的类中必须实现。
2025-05-01 11:05:14
450
原创 13.react-native使用安卓原生代码
使用android studio打开react native项目的android目录在kotlin+java目录下添加代码。
2025-05-01 02:12:35
349
原创 12.redux-store使用
修改component/MapComponent.jsx。修改component/MapComponent.jsx。修改component/MapComponent.jsx。propTypes.js: 创建自定义类型限制。点击按钮后Name,Age,Address变更。客户端一般用于处理异步函数,比如调用接口。添加依赖prop-types。修改Context.js。修改Client.js。
2025-05-01 02:08:58
444
原创 10.useEffect使用
可以重用的用来同步外部系统的代码,导出名一般使用use开头}, 2000);}, []);} , [ ]);});})();`);} , [ ]);});})();`);});})();
2025-04-16 17:58:26
210
原创 9.useReducer+useContext搭配使用
useReducer和useState一样,需要通过props在子组件中传递,很麻烦,所以可以把useReducer返回的状态和dispatch通过useContext在子组件中传递。
2025-04-16 17:57:44
191
原创 8.useReducer使用
reducer的作用是根据初始状态和操作的类型以及参数来返回新的状态,这个状态类似于useState的状态,最好提供一个单独的文件MapReducer.ts。
2025-04-16 17:56:44
356
原创 4.react-native开发环境配置
查看android/build.gradle文件查看要求的android环境。使用android studio安装andorid sdk对应版本的模拟器。使用android studio安装对应版本的build tools。使用android studio安装对应版本的sdk。使用android studio安装对应版本的ndk。在android studio启动模拟器。
2025-04-16 17:53:18
329
原创 3.react-web开发环境配置
执行npm run dev启动服务器,在浏览器打开http://localhost:5173,F12打开开发者工具可以在tsx文件中下断点。执行npm run dev启动服务器,在vscode按F5开启调试,可以直接在源代码上下断点。添加.vscode/launch.json文件。在tsconfig.app.json中修改。在eslint.config.js中添加。vite.config.ts添加配置。vite.config.ts添加配置。修改vite.config.ts文件。使用vitest做单元测试。
2025-04-16 17:51:26
333
原创 2.typescript第三方库开发环境配置
这样编译后会在dist目录下新增index.d.ts文件和index.d.ts.map文件。通过上面的步骤,一个第三方库已经完成,在其他项目中就可以使用这个第三方库了。在test目录下创建一个名为example.test.ts文件。这个时候在dist中会多一个index.js.map文件。这时在dist目录下会生成index.js文件。在tsconfig.json添加配置。在package.json添加脚本。在package.json添加脚本。在package.json添加脚本。在项目根目录下创建一个。
2025-04-16 17:48:42
712
原创 12.get_optional_long函数
get_optional_long用来获取启动选项argc: 参数个数argv: 参数列表shortopts:选项短名称,比如a:b::c(x 对应option结构中的no_argument,使用-x传参x: 对应option结构中的required_argument,使用-x=value传参x:: 对应option结构中的optional_argument, 可以使用-x传参,也可以使用-x=value传参)longopts:选项长名称。
2025-03-27 00:19:41
180
原创 11.时间类型
localtime返回的tm指针是static类型的,所以返回的tm是同一个,就会有线程安全问题,所有线程使用的tm都是同一个。两个时间返回的time_t是一样的,因为tm结构中有一个tm_zone结构,标注了tm时间的时区,所以都可以调整到UTC时间。localtime_r第二个参数传入一个一个tm指针,这样不同线程的tm就不再是同一个了,就不会有线程安全问题了。先将string转化成tm,再使用mktime将tm转化为time_t。timeval的tv_sec就是time_t时间。
2025-03-27 00:18:15
988
原创 9.std::function使用
中括号中的参数会绑定到std::function对象内部,可以使用传引用和传值的方式传入。实参->形参:拷贝构造,形参->function对象内部:移动构造。std::function内部传入的值不会调用拷贝构造或是移动构造。std::function内部传入的值也会拷贝构造一次。不会调用对象的移动构造和拷贝构造函数。
2025-03-27 00:13:54
266
原创 8.c++智能指针
普通的指针很容易引起指针未释放,指针二次释放以及使用已释放指针的问题,使用智能指针不用去主动释放了,智能指针析构的时候指针就会释放。
2025-03-27 00:13:01
329
原创 7.c++继承&多态
无参构造函数移动构造函数拷贝构造函数可以使用=delete 来去除默认默认构造函数可以使用=default 来创建某个默认构造函数。
2025-03-25 17:46:14
383
原创 3.宏&内联函数
宏变量使用1.变量作为字符串存在“xxx” ##x ”“yyy” 将组成一个字符串”xxx(x的值)yyy”2. 如果变量前面有非特殊字符,为了防止变量不解析,需要加##来标识,一般用来作为名称的一部分使用3. 不加如果变量前面没有非特殊字符,变量一定可以解析,可以省略##,当然也可以不省略也没有问题
2025-03-25 17:39:36
327
原创 2.c++左值和右值
std::forward可以把左值引用或右值引用转换为目标类型的引用(右值引用无法转换为左值引用)std::move可以把左值引用或右值引用全部转换成右值引用。已知T的类型,求T和T&和T&&的类型。已知T和T&和T&&的类型,求T的类型。以模板函数的参数来说明。
2025-03-25 17:38:26
967
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅