语言 笔记sizeof

太香了,Rust语言

这几天我学习了rust编程语言,怀着激动的心情来分享体会,它真的太优秀了。 c语言运行很快,通用性[注]一流,不支持面向对象。rust通用性也一流,上支持面向对象,下支持内联汇编。 c++支持面向对象,内存得手工管理。rust自动管理内存。c++语法庞大复杂,rust远没有c++庞大复杂。 java ......
语言 Rust

字符串哈希笔记

字符串哈希 1. 定义 一个把字符串映射到整数的函数$f$,这个$f$被称为哈希函数; 这个函数的作用:希望可以判断两个字符是否相等; 1.1 Hash的思想 核心思想在于: 如何将一个字符串映射到一个值域较小、方便比较的范围? 大范围映射到小范围: 对一个大数进行取模,例如一个大的质数 注意: 在 ......
字符串 字符 笔记

计算机组成与设计 硬件软件接口 第五版 流水线部分笔记

TODO1:为什么果壳不在 IDU 阶段读出寄存器?而要在后端?是跟超标量、乱序有关系吗? TODO2: 修改PC难道比修改其它寄存器更快吗? TODO3: 长流水线有什么缺点? TODO4: 需要两个存储器吗?优缺点? TODO5: 气泡指令是什么?为什么可以起到阻塞的作用?比起直接阻塞有什么优缺 ......
流水线 接口 流水 部分 硬件

Lucas/exLucas 定理 学习笔记

0x00 前言 Lucas 定理适用于求在模 p 意义下的组合数(p 是质数)。此时, p 一般不大,但 n,m 很大,这样无法通过常规的方法预处理(一是空间可能开不下,二是如果 m>p ,则 n-m 和 m 不一定有逆元)。 当然你可以用杨辉三角递推,但这是 $\text{O}(n^2)$ 的。 ......
定理 exLucas 笔记 Lucas

构建之法阅读笔记1

一、我过去是怎么做的 过去,刚开始学C时,我还不知道这些编程语言能干什么用,而且老师也只是只讲课本知识,动手实践很少,导致现在回想大一时并没有什么收获可以回味。加上自己对这个专业也没有什么兴趣,只知道找工作容易。课下从未动手敲过代码。面对一些难得项目,学校的编程比赛我都没勇气去参加,甚至我都不敢去想 ......
笔记

idea工具-Java语言-tomcat服务使用

1.IDEA工具 使用Ultimate版本,下载 IntelliJ IDEA 2.下载tomcat 不需要安装,解压到任意位置,下载 官网 3.打开idea创建Java项目 3.1右键选择Add Frameworks Support勾选Web Application 3.2如图依次点击选择tomca ......
语言 工具 tomcat idea Java

构建之法阅读笔记1

软件=程序+软件工程,程序就是算法和数据结构,而软件工程包括构建管理软件,源代码的管理,软件的设计,对软件质量测试的软件测试,项目管理,以及用户体验和用户界面设计等。程序是软件的基础,而软件工程决定了软件的质量。 软件的本质决定了其特性:复杂性,不可见性,易变性,服从性,非连续性等。 软件工程和计算 ......
笔记

Cadence入门笔记(四):PCB封装制作

新建文件 首先打开allegro,选择新建一个Packge symbol 随后调整一下图纸的单位和边框大小扩展(把调整Extends可以把原点居中放置,原生只在左下角) 为了调用之前设计好的pad文件,需要修改user preferences里的paths路径,将padpath和psmpath路径修 ......
Cadence 笔记 PCB

[学习笔记] CDQ分治

引入 - 分治 分治,就是将讲原问题不断细分直到规模小到能够解决,然后一层层向上合并得到答案的过程。 归并排序 大致思想:把序列拆成左右两部分,分别归并排序,然后使用两个指针按序合并左右部分。 归并求逆序对 归并求逆序对是分治的一个经典例子。 要做的就是在合并过程中计算逆序对对数。 由于合并的是两个 ......
笔记 CDQ

nginx课堂笔记

课堂笔记 内容介绍 nginx 1 、 nginx简介 ( 1 ) 什么是nginx和可以做什么事情 ( 2 ) 正向代理 ( 3 ) 反向代理 ( 4 ) 动静分离 2 、 Nginx的安装 ( 1 ) 在linux系统中安装nginx 3 、 Nginx的常用命令和配置文件 4 、 Nginx配 ......
课堂笔记 课堂 笔记 nginx

Linux & 标准C语言学习 <DAY17> *完结

一、文件 1、文件的分类 1.文本文件 是人能看得懂的文件,存储的是字符符号的ASCII码的二进制 //存储'2''5''5'的二进制,显示255 2.二进制文件 存储的是数据的补码二进制 //存储255:1111 1111 2、文件IO FILE *fopen(const char *path, ......
语言学习 语言 标准 Linux DAY

树链剖分学习笔记(1)

两大DFS 树链剖分是一个比较简单易懂的算法,其两个基础操作为两次dfs,第一次dfs求出每个节点的父节点($f_{i}$),深度($dep_{i}$),子树大小($size_{i}$),重儿子($son_{i}$)。其中,重儿子是其子节点中字数最大的,所以不难写出第一次dfs的代码: void d ......
笔记

c语言学习-指针

指针变量 指针变量是存放地址的变量 指针变量需要区分类型,跨度不一样 int *p // 这里*是标识符,告诉系统这是一个指针变量,用来保存地址 printf("%d\n", *p) // 这里*是取值运算符,把内存地址p里的数据取出来 数组的首地址就是数组首个元素的地址 数组名就是数组的首地址 i ......
语言学习 指针 语言

c语言学习-字符串和结构体

字符串 是数组,结尾多一个"\0",是字符串的结束标志 char ch[] = "helo"; char *pchar = "helo"; sizeof和strlen区别 char cdaat[128] = "hello"; sizeof(cdaat);// 128 strlen(cdaat);// ......
语言学习 字符串 字符 语言 结构

mongo笔记

1、nosql 优点: 高可扩展 分布式 架构灵活 2、表连接,mongo不支持 database collection 3、服务端 mongod 客户端 mongo 4、创建集合 db.createCollection('集合名称') db.集合名称.drop() 5、更改语句 db.Person ......
笔记 mongo

【笔记】electron + react + antd

electron Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows上运行的跨平台应用 macOS和Li ......
electron 笔记 react antd

go语言的并发

并发编程在当前软件领域是一个非常重要的概念,随着CPU等硬件的发展,我们无一例外的想让我们的程序运行的快一点、再快一点。Go语言在语言层面天生支持并发,充分利用现代CPU的多核优势,这也是Go语言能够大范围流行的一个很重要的原因。 基本概念 首先我们先来了解几个与并发编程相关的基本概念。 串行、并发 ......
语言

C#初步学习4(个人笔记,基于老赵.Net的视频自学,不喜勿喷)

//此笔记仅针对个人学习而写,会有所缺失的内容,不喜勿喷 初步学习 C#中的类 C#中的类也和java相似 先来创建一个“Student”类 其内“Show”方法并不是静态方法,要创建“Student”的实例来进行调用 通过该实例没有报错,我们可以知道C#类中也有默认写出的空构造方法 现在我们来取消 ......
笔记 个人 视频 Net

SqlSugar 实践笔记

使用 Insertable + ExecuteReturnSnowflakeIdAsync 为Id赋值时Id字段不能自增 数据库为SqlServer2012,实体的Id字段标记IsPrimaryKey = true属性,新增时使用雪花算法创建Id并将其赋值给新增记录,此时数据表Id字段不能设置为自增 ......
SqlSugar 笔记

【笔记】C++缺省源

C++竞赛使用缺省源(包括几次迭代的多个功能) 点击查看代码 /* Author: Sean_xzx Right Output! & Accepted! 本题核心: 1. 本题步骤: 1. */ #include <bits/stdc++.h> #define rep(i, a, b) for(in ......
笔记

后缀数组SA学习笔记

洛谷模板题 题意:读入一个长度为 $ n $ 的由大小写英文字母或数字组成的字符串,请把这个字符串的所有非空后缀按字典序(用 ASCII 数值比较)从小到大排序,然后按顺序输出后缀的第一个字符在原串中的位置。位置编号为 $ 1 $ 到 $ n $。其中$1\le n \le 10^6$ 讲解清楚,码 ......
数组 后缀 笔记

英语打字练习软件-c语言编写

学习c语言的时候编写的英语打字练习软件,已经上传github 自取 https://github.com/lzl12123/typing-software 软件实际效果如下 在下载的压缩包里,运行exe文件就可使用,源码为ConsoleApplication1这个文件 ......
语言 软件

学习记录:第一周day01笔记

linux系统简单介绍: BCPL->New B->C->Unix->Minix->Linux->gcc为了编译LInux内核产生 美国贝尔实验室 1.cd命令: cd 文件路径:进入某个目录 / :根目录,所有文件都存储在该目录下 ~:用户主目录,linux提供一个快捷方式cd可以直接回到用户主目 ......
笔记 day 01

学习记录:第一周day02笔记

vim文本编辑器: 可以直接在终端下采用纯键盘操作的一款文本编辑器(号称编辑器之神,可以升级、可以扩展) 基础用法: 1、进入vim: 输入 vim file.c 文件存在则打开,否则新建并打开 2、输入i: 进入编辑模式,编写代码 3、保存并退出 按Esc,输入ZZ保存并退出 vim三大模式: 正 ......
笔记 day 02

学习记录:第一周day03笔记

一、数据类型 为什么要对数据进行分类? 1、现实中的数据就是自带类别属性的 2、对数据进行分类可以节约内存存储空间、提高运行速度 存储空间的单位: Bit 比特 存储1个二进制位,只能存储0或1,是计算机存储数据的最小单位 Byte 字节 存储8个二进制位,是计算机存储数据的基本单位 KB(Kb) ......
笔记 day 03

学习记录:第一周day04笔记

一、for循环语句 循环:就是一种让代码反复执行的方式,从而达到想要的效果 for循环一般会使用一个变量来引导循环的进行,这一变量叫做该循环的循环变量 i index for循环的变化很灵活,但也很危险 for循环的括号问题: 1、for循环内只有一行代码时,大括号可以省略 但是这样不利于后期代码扩 ......
笔记 day 04

学习记录:第一周day05笔记

一、数组 什么是数组:变量的组合,是一种批量定义相同类型变量的方式 定义: 类型名 数组名[数量]; int arr[5]; 注意:数组的内存空间是连续分配的,且数组的长度一旦确定就无法改变 使用:数组名[下标]; 下标:从0开始,范围:0~数量-1 可以是任意整型表达式,包括整型变量和整型常量 遍 ......
笔记 day 05

学习记录:第二周day01笔记

一、Window下获取方向键 1、导入头文件 #include<conio.h> 2、通过getch()获取键盘上的键值 上:72 下:80 左:75 右:77 二、Linux下获取方向键: 1、在Window中把getch.h文件放入共享文件夹中 2、在Linux的共享文件夹下执行 mv getc ......
笔记 day 01

学习记录:第二周day02笔记

进制转换 1、为什么使用二进制、八进制、十六进制? 因为目前CPU只能识别高低两种电平,只能对二进制数据进行计算 二进制虽然能够直接别计算机识别但是不方便人去书写和记录,因此就把二进制数据转换成八进制,方便记录到文档中 随着CPU的位数的不断增加(目前已经到64位),八进制不再能够用满足需求,因此发 ......
笔记 day 02

为什么Redis不直接使用C语言的字符串?看完直接吊打面试官!

众所周知Redis有以下几种常见的数据类型 String(字符串)、List(列表)、Set(集合)、Hash(哈希)、Sorted set(有序集合)、Stream(流)、Geo(地理空间索引)、Bitmap(位图)、HyperLogLog(基数统计)等。 我们最常用的就是String(字符串)... ......
字符串 字符 语言 Redis