自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【须知】博客内容已转移,此后该博客不再更新

个人博客(即新博客)地址:https://phantasm-of-observer.github.io/

2022-02-22 11:17:16 233 1

翻译 [Substrate Recipes翻译]1.21 Tightly- and Loosely-Coupled Pallets

Tightly- 和 Loosely-Coupled Palletscheck-membership crate包含了两个pallet去用稍微不同的方式去解决同一个问题。两个pallet都实现了一个单独的只能由访问控制列表(以下简称为ACL)里的caller成员执行的可调度函数。维护ACL的工作被抽象包装为另一个pallet,这个pallet和membership-managing pallet可以以两种方式来耦合,下面我们用tight和loose这两个变体pallet来演示这两种耦合方式。孪生Pall

2021-10-11 13:54:19 226

原创 《Rust权威指南》第18章_模式匹配_草稿

所有可以使用模式的场合match分支if let条件表达式while let条件循环for循环let语句函数的参数可失败性:模式是否会匹配失败模式语法匹配字面量匹配命名变量多重模式使用…来匹配值区间使用解构来分解值解构结构体解构枚举解构嵌套的结构体和枚举解构结构体和元组忽略模式中的值使用_忽略整个值使用嵌套的_忽略值得某些部分通过以_开头的名称来忽略未使用的变量使用…忽略值得剩余部分使用匹配首尾添加额外条件@绑定fn main().

2021-09-23 16:32:20 365

原创 《Rust权威指南》第17章_Rust的面向对象编程特性_草稿

面向对象语言的特性对象包含数据和行为封装实现细节作为类型系统和代码共享机制的继承使用trait对象来存储不同类型的值为共有行为定义一个trait实现traittrait对象会执行动态派发trait对象必须保证对象安全实现一种面向对象的设计模式定义Post并新建一个处于草稿状态下的新实例存储文章内容的文本确保草稿的可读内容为空请求审批文章并改变其状态添加approve方法来改变content的行为状态模式的权衡取舍将状态和行为编码成类型postm.

2021-09-11 17:58:12 232

原创 《Rust权威指南》第16章_无畏并发_草稿

使用线程同时运行代码使用spawn创建新线程使用join句柄等待所有线程结束在线程中使用move闭包使用消息传递在线程间转移数据通道和所有权转移发送多个值并观察接收者的等待过程通过克隆发送者创建多个生产者共享状态的并发互斥体一次只允许一个线程访问数据Mutex的接口在多个线程间共享Mutex多线程与多重所有权原子引用计数ArcRefCell/Rc和Mutex/Arc之间的相似性使用Sync trait和Send trait对并发进行拓展允许线程间转.

2021-09-09 21:12:14 259

原创 《Rust权威指南》第15章_智能指针_草稿

使用Box在堆上分配数据使用Box在堆上存储数据使用装箱定义递归类型有关链接列表的更多信息计算一个非递归类型的大小使用Box将递归类型的大小固定下来通过Deref trait将智能指针视作常规引用使用解引用运算符跳转到指针指向的值把Box当成引用来操作定义我们自己的智能指针通过实现Deref trait来将类型视作引用函数和方法的隐式解引用转换解引用转换与可变性借助Drop trait在清理时运行代码使用std::men::drop提前丢弃值基于引用计.

2021-08-30 16:38:39 206

原创 《Rust权威指南》第14章_进一步认识Cargo及crates.io_草稿

使用发布配置来定制构建将包发布到crates.io上编写有用的文档注释常用的文档注释区域将文档注释用作测试在条目内部编写注释使用pub use来导出合适的公共API创建crates.io账户为包添加元数据发布到crates.io发布已有包的新版本使用cargo yank命令从cargo.io上移除版本Cargo工作空间创建工作空间在工作空间中创建第二个包在工作空间中依赖外部包为工作空间增加测试使用cargo install从crates.io上安装.

2021-08-29 11:00:15 190

原创 《Rust权威指南》第13章_函数式语言特性:迭代器与闭包_草稿

闭包:能够捕获环境的匿名函数使用闭包来创建抽象化的程序行为使用函数来进行重构使用闭包存储代码来进行重构闭包的类型推断和类型标注使用泛型参数和Fn trait来存储闭包Cacher实现的局限性使用闭包捕获上下文环境使用迭代器处理元素序列Iterator trail和next方法消耗迭代器的方法生成其他迭代器的方法使用闭包捕获环境使用Iterator trait来创建自定义迭代器使用Counter迭代器的next方法使用其他的Iterator trait方法.

2021-08-28 13:02:20 161

原创 《Rust权威指南》第12章_一个 I/O 项目:构建一个命令行程序_草稿

main.rsuse std::env;use std::process;use minigrep::Config;fn main() { let args: Vec<String> = env::args().collect(); let config = Config::new(&args).unwrap_or_else(|err| { eprintln!("Problem parsing arguments: {}", err);

2021-08-27 03:00:18 127

原创 《Rust权威指南》第11章_编写自动化测试_草稿

如何编写测试测试函数的构成使用assert!宏检测结果使用assert_eq!和assert_ne!宏判断相等性添加自定义的错误提示信息使用should_panic检查panic使用Result<T, E>编写测试控制测试的运行方式并行或串行地进行测试显示函数输出只运行部分特定名称的测试运行单个测试通过过滤名称来运行多个测试通过显式指定来忽略某些测试测试的组织结构单元测试测试模块和#[cfg(test)]测试私有函数集成测试te.

2021-08-23 19:38:21 135

原创 《Rust权威指南》第10章_泛型、trait与生命周期_草稿

通过将代码提取为函数来减少重复工作泛型数据类型在函数定义中在结构体定义中在枚举定义中在方法定义中泛型代码的性能问题trait: 定义共享行为定义trait为类型实现trait默认实现使用trait作为参数trait约束通过+语法来指定多个trait约束使用where从句来简化trait约束返回实现了trait的类型使用trait约束来修复largest函数使用trait约束来有条件地实现方法使用生命周期保证引用的有效性使用生命周期来避免悬垂引用借.

2021-08-21 23:31:53 297

原创 《Rust权威指南》第9章_错误处理_草稿

不可恢复错误与panic!使用panic!产生的回溯信息可恢复错误与Result匹配不同的错误失败时触发panic的快捷方式:unwarp和expect传播错误传播错误的快捷方式:?运算符?运算符只能被用于返回Result的函数要不要使用panic!示例、原型和测试当你比编译器拥有更多信息错误处理的指导原则创建自定义类型来进行有效性验证//Powershell输入// $env:RUST_TRACE=1;cargo run//来显示回溯信息use.

2021-08-18 23:00:42 170

原创 《Rust权威指南》第8章_通用集合类型_草稿

使用动态数组存储多个值创建动态数组更新动态数组销毁动态数组时也会销毁其中元素读取动态数组中的元素遍历动态数组中的值使用枚举来存储多个类型的值使用字符串存储UTF-8编码的文本字符串是什么创建一个新的字符串更新字符串使用+运算符或format!宏来拼接字符串字符串索引内部布局字节、标量值及字形簇!天呐!字符串切片遍历字符串的方法字符串的确没那么简单在哈希映射中存储键值对创建一个新的哈希映射哈希映射与所有权访问哈希映射中的值更新哈希映射.

2021-08-14 11:50:03 174 1

原创 浙江大学慕课《数据结构》学习笔记_2.1线性表及其实现

第二讲 线性结构2.1 线性表及其实现多项式的表示一元多项式 :f(x) = a0 + a1x + ··· + an-1xn-1 + anxn主要运算:多项式相加、相减、相乘等多项式的关键数据:多项式项数n各项系数ai 及指数 i方法1:顺序存储结构直接表示数组各分量对应多项式各项:a[i]:项xi的系数ai例如f(x)=4x5-3x2+1表示成:下标i012345······a[i]10-3004······1-3

2021-07-18 17:10:03 264 2

原创 浙江大学慕课《数据结构》学习笔记_1.3 应用实例

第一讲 基本概念1.3 应用实例:最大子列和问题给定N个整数的序列{ A1, A2, …, AN},求函数 的最大值。算法一:int MaxSubseqSum1( int A[], int N ){ int ThisSum, MaxSum = 0; int i, j, k; for( i = 0; i < N; i++ ) /* i是子列左端位置 */ { for( j = i; j < N; j++ ) /* j是子列右端位置 */ { ThisSu

2021-07-17 01:07:41 136 1

原创 浙江大学慕课《数据结构》学习笔记_1.2 什么是算法

第一讲 基本概念1.2 什么是算法定义算法(Algorithm)一个有限指令集接受一些输入(有些情况下不需要输入)产生输出一定在有限步骤之后终止每一条指令必须有充分明确的目标,不可以有歧义计算机能处理的范围之内描述应不依赖于任何一种计算机语言以及具体的实现手段选择排序算法的伪码描述void SelectionSort ( int List[], int N ){ /* 将N个整数List[0]...List[N-1]进行非递减排序 */ for ( i = 0

2021-07-15 18:29:32 284 3

原创 浙江大学慕课《数据结构》学习笔记_1.1 什么是数据结构

1.1 什么是数据结构官方统一定义—— 没有……“数据结构是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出。”——Sartaj Sahni,《数据结构、算法与应用》“数据结构是ADT(抽象数据类型 Abstract Data Type)的物理实现。”——Clifford A.Shaffer,《数据结构与算法分析》“数据结构(data structure)是计算机中存储、组织数据的方式。通常情况下,精心选择的数据结构可以带来最优效率的算法

2021-07-14 20:57:39 322

原创 《Python:编程:从入门到实践》学习笔记_第11章 测试代码

第11章 测试代码11.1 测试函数name_function.py(文件名,非代码) def get_formatted_name(first, last): """Generate a neatly formatted full name.""" full_name = first + ' ' + last return full_name.title()程序names.py让用户输入名和姓,并显示整洁的全名:from name_function import get_f

2021-06-14 10:10:59 518 5

原创 《Python:编程:从入门到实践》学习笔记_第10章 文件和异常

第10章 文件和异常异常是Python创建的特殊对象,用于管理程序运行时出现的错误;你还将学习模块json,它让你能够保存用户数据,以免在程序停止运行后丢失。10.1 从文件中读取数据文本文件可存储的数据量多得难以置信,每当需要分析或修改存储在文件中的信息时,读取文件都很有用,对数据分析应用程序来说尤其如此。例如,你可以编写一个这样的程序:读取一个文本文件的内容,重新设置这些数据的格式并将其写入文件,让浏览器能够显示这些内容。要使用文本文件中的信息,首先需要将信息读取到内存中。为此,你可以一次性读

2021-06-07 21:26:45 333

原创 《Python:编程:从入门到实践》学习笔记_第9章 类

第9章 类根据类来创建对象被称为实例化。9.1 创建和使用类使用类几乎可以模拟任何东西。9.1.1 创建 Dog 类class Dog(): """一次模拟小狗的简单尝试""" def __init__(self, name, age): """初始化属性name和age""" self.name = name self.age = age def sit(self): """模拟小狗被命令时蹲下""" print(self.name.t

2021-06-06 18:18:29 209

原创 《Python:编程:从入门到实践》学习笔记_第8章 函数

第8章 函数8.1 定义函数def greet_user(): """显示简单的问候语""" print("Hello!") greet_user() 使用关键字def来告诉Python你要定义一个函数。这是函数定义,向Python指出了函数名,还可能在括号内指出函数为完成其任务需要什么样的信息。在这里,函数名为greet_user(),它不需要任何信息就能完成其工作,因此括号是空的(即便如此,括号也必不可少)。最后,定义以冒号结尾。紧跟在def greet_user():后面的所

2021-06-06 09:52:18 202 2

原创 《Python:编程:从入门到实践》学习笔记_第7章 字典用户输入和while循环

第一章 用户输入和while循环7.1 函数 input()的工作原理函数input() 让程序暂停运行,等待用户输入一些文本。获取用户输入后,Python将其存储在一个变量中,以方便你使用。message = input("Tell me something, and I will repeat it back to you: ") print(message) 函数input() 接受一个参数:即要向用户显示的提示或说明,让用户知道该如何做。在这个示例中,Python运行第1行代码时,用户

2021-06-05 12:13:52 212

原创 《Python:编程:从入门到实践》学习笔记_第6章 字典

第6章 字典6.1 一个简单的字典alien_0 = {'color': 'green', 'points': 5} print(alien_0['color']) print(alien_0['points']) 字典alien_0存储了外星人的颜色和点数。使用两条print语句来访问并打印这些信息,如下所示:green 5 6.2 使用字典在Python中,字典是一系列键-值对。每个键都与一个值相关联,你可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至

2021-06-05 10:59:49 213 1

原创 《Python:编程:从入门到实践》学习笔记_第5章 if语句

第5章 if语句5.1 简单示例假设你有一个汽车列表,并想将其中每辆汽车的名称打印出来。对于大多数汽车,都应以首字母大写的方式打印其名称,但对于汽车名’bmw’,应以全大写的方式打印。cars = ['audi', 'bmw', 'subaru', 'toyota'] for car in cars: if car == 'bmw': print(car.upper()) else: print(car.title()) 这个示例中的循环首先检查当前的汽车名是否是’bmw

2021-06-03 16:23:06 213 1

原创 《Python:编程:从入门到实践》学习笔记_第4章 操作列表

第4章 操作列表4.1 遍历整个列表你经常需要遍历列表的所有元素,对每个元素执行相同的操作。通过使用for循环,可让Python去处理这些问题。magicians = ['alice', 'david', 'carolina'] for magician in magicians: print(magician)这行代码让Python从列表magicians中取出一个名字,并将其存储在变量magician中。输出很简单,就是列表中所有的姓名:alice david carolina

2021-06-03 10:52:18 230 1

原创 《Python:编程:从入门到实践》学习笔记_第3章 列表简介

第3章 列表简介3.1 列表是什么列表由一系列按特定顺序排列的元素组成,其中的元素之间可以没有任何关系。鉴于列表通常包含多个元素,给列表指定一个表示复数的名称(如letters、digits或names)是个不错的主意。在Python中,用方括号([]) 来表示列表,并用逗号来分隔其中的元素。下面是一个简单的列表示例,这个列表包含几种自行车:bicycles = ['trek', 'cannondale', 'redline', 'specialized'] print(bicycles)

2021-06-01 22:12:01 216

原创 《Python:编程:从入门到实践》学习笔记_第2章 变量和简单数据类型

第2章 变量和简单数据类型2.1 运行 hello_world.py 时发生的情况运行文件hello_world.py时,末尾的.py指出这是一个Python程序,因此编辑器将使用Python解释器来运行它。Python解释器读取整个程序,确定其中每个单词的含义。例如,看到单词print时,解释器就会将括号中的内容打印到屏幕,而不会管括号中的内容是什么。编写程序时,编辑器会以各种方式突出程序的不同部分。例如,它知道print是一个函数的名称,因此将其显示为蓝色;它知道“Hello Python wo

2021-06-01 09:11:15 354

原创 《Python:编程:从入门到实践》学习笔记_第1章 起步

第1章 起步1.1 搭建编程环境1.1.1 Python2和Python3总而言之,若无特殊需求,最好使用最新的Python3版本。1.1.2 运行Python代码片段Python自带了一个在终端窗口中运行的解释器,让你无需保存并运行整个程序就能尝试运行Python代码片段。 >>> print("Hello Python interpreter!") Hello Python interpreter! 1.1.3 Hello World程序要使用Python来编写这

2021-05-31 20:26:09 395 5

原创 竞赛知识点前50题

对于基础信息网络、云计算平台、大数据平台等支撑类网络,应根据其承载或将要承载的等级保护对象的重要程度确定其安全保护等级,原则上应不低于其承载的等级保护对象的安全保护等级。关于\var\log\messages的描述正确的是windows下同样存在存放的是系统的日志信息日志字段信息里没有时间记录应用日志将用户修改为管理员权限的命令法律规定,网络运营者不得泄露、篡改、毁损其收集的个人信息;未经被收集者同意,不得向他人提供个人信息。正确的等级保护定级工作内容顺序年龄限制在10-25岁之间的约束属

2021-05-15 11:04:06 468 1

原创 C++Primer学习笔记_第四章 表达式

第4章 表达式表达式由一个或多个运算对象(operand) 组成,对表达式求值将得到一个结果(result)。字面值和变量是最简单的表达式(expression),其结果就是字面值和变量的值。把一个**运算符(operator)**和一个或多个运算对象组合起来可以生成较复杂的表达式。4.1 基础4.1.1 基本概念C++定义了一个一元运算符(unary operator) 和 二元运算符(binary operator) 以及 三元运算符(唯一 b ? x:y)。作用于几个运算对象就叫几元。函

2021-05-09 17:40:00 252

原创 [CTFHub][技能树]Web_Web前置技能_HTTP协议_请求方式

Web_Web前置技能_HTTP协议_请求方式知识点:HTTP 请求方法, HTTP/1.1协议中共定义了八种方法(也叫动作)来以不同方式操作指定的资源。靶机地址:http://challenge-4da4b1e058a0a58a.sandbox.ctfhub.com:10080/index.php题目:HTTP Method is GETUse CTFHUB Method, I will give you flag.Hint: If you got 「HTTP Method Not Al

2021-05-02 13:24:21 411

原创 从0备战CTF_前序

从0备战CTF前序配套网址:https://www.ctfhub.com/#/indexCTF赛事介绍(转载自百度百科)CTF是一种流行的信息安全竞赛形式,其英文名可直译为“夺得Flag”,也可意译为“夺旗赛”。其大致流程是,参赛团队之间通过进行攻防对抗、程序分析等形式,率先从主办方给出的比赛环境中得到一串具有一定格式的字符串或其他内容,并将其提交给主办方,从而夺得分数。为了方便称呼,我们把这样的内容称之为“Flag”。CTF竞赛模式(转载自百度百科)CTF竞赛模式具体分为以下三类:一、解题

2021-04-30 08:46:00 202

原创 简单推箱子C++代码实现

#include<iostream>#include<cstdlib>#include<conio.h>#define N 20using namespace std;int main(void){ ////////////////////////////////////////////// // // // 空地: 0 // // 墙: 1 ■ // // 目的地: 3 ☆ // //

2021-04-27 23:30:47 424

原创 从0备战GPLT_第x天

从0备战GPLT第x天内容:深度优先搜索深度优先搜索深度优先搜索属于图算法的一种,英文缩写为DFS即Depth First Search.其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次。基本模型:void dfs(int step){ 判断边界; 尝试每一种可能 for (i = 1; i <= n; i++) { 继续下一步 dfs(step + 1); } 返回;}代码实现(全排列):#include<iostr

2021-04-23 15:26:11 108

原创 从0开始备战GPLT_第9天

从0开始备战GPLT第9天栈栈(stack) 又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。stack堆栈容器的C++标准头文件为 stack ,必须用宏语句 “#include < stack >” 包含进来,才可对 stac

2021-04-23 10:12:47 141

原创 从0开始备战GPLT_第7天

从0备战GPLT第七天排序1.选择排序2.冒泡排序3.插入排序4.桶排序桶排序 (Bucket sort) 或所谓的 箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。代码实现:#include<iostream>using namespace std;void bucketSort(int a[],int lenth){ int i; int bucket[100

2021-04-23 09:38:51 75

原创 洛谷_P1061 [NOIP2006 普及组] Jam 的计数法 题解

题目描述Jam是个喜欢标新立异的科学怪人。他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩。在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文字母按原先的顺序,排在前面的字母小于排在它后面的字母。我们把这样的“数字”称为Jam数字。在Jam数字中,每个字母互不相同,而且从左到右是严格递增的。每次,JamJam还指定使用字母的范围,例如,从2到10,表示只能使用{b,c,d,e,f,g,h,i,j}这些字母。如果再规定位数为55,那么,紧接在Jam数字

2021-03-31 00:54:50 670

原创 洛谷_P1088 [NOIP2004 普及组] 火星人 题解

题目描述人类终于登上了火星的土地并且见到了神秘的火星人。人类和火星人都无法理解对方的语言,但是我们的科学家发明了一种用数字交流的方法。这种交流方法是这样的,首先,火星人把一个非常大的数字告诉人类科学家,科学家破解这个数字的含义后,再把一个很小的数字加到这个大数上面,把结果告诉火星人,作为人类的回答。火星人用一种非常简单的方式来表示数字――掰手指。火星人只有一只手,但这只手上有成千上万的手指,这些手指排成一列,分别编号为1,2,3…。火星人的任意两根手指都能随意交换位置,他们就是通过这方法计数的。一个火

2021-03-29 20:49:58 519

原创 从0开始备战GPLT_第1天

从0备战GPLT第一天模拟顾名思义,就是写程序来模拟题目中所要求的操作,只需要按照题面的意思来写即可。对应题目:洛谷 P1420 最长连号:https://www.luogu.com.cn/problem/P1420洛谷 P5594 【XR-4】模拟赛:https://www.luogu.com.cn/problem/P5594...

2021-03-27 12:54:26 109

原创 从0开始备战GPLT_第0天

从0开始备战ACM第0天竞赛详情:官网:https://gplt.patest.cn/regulation题库PTA-团体程序设计天梯赛-练习集:https://pintia.cn/problem-sets/994805046380707840/problems/type/7比赛技巧及知识点:转自博客:https://blog.csdn.net/qq_40946921/article/details/88636096?ops_request_misc=%257B%2522request%25

2021-03-25 20:45:06 178 1

空空如也

空空如也

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

TA关注的人

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