自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

码的世界

大道至简

  • 博客(171)
  • 资源 (1)
  • 收藏
  • 关注

原创 区块链知识合集

blockchainHome是什么?这是一个区块链学习资源库,收录区块链开发,区块链计算机理论,区块链与金融,区块链产业发展等内容为什么创建?1. 目前很多区块链资源仓库很久没有进行更新了;2. 期望创立一个循序渐进的,而非简单罗列的区块链学习仓库使用指南:各板块的资源收录将按照:在线资源优先于百度网盘资源的方式进行链接更新:目前仓库按照一周一更的速度(打钩的内容表示已经收录,未打钩的内容表示暂无资源),正处于仓库内容的充实阶段。点击这个链接进入当前目录图书科普技术金融白皮书

2021-12-03 17:25:41 543

原创 -关于我-

👨🏼‍🎓 前酒吧舞驻唱 🎨 代码艺术家 💰 金融爱好者 📚 终身学习。

2018-01-20 15:19:22 793 1

原创 【学习笔记】【C++】哪些函数不能是虚函数

虚表的指针在构造函数创建的过程中被设置,简单理解为虚函数的创建被包含在构造函数创建过程中,所以构造函数不能是虚函数,否则逻辑上就矛盾了。静态成员函数属于类,而不是对象,没有 this 指针,不能成为虚函数。友元函数不是类成员函数,没有 this 指针,不能被继承。,内联函数被声明为 virtual 是无效的。模板在编译时实例化,而虚函数在运行时期执行。内联函数在编译时期执行,而。

2025-03-16 10:13:34 237

原创 【教程】继承中的访问控制 C++

在 C++ 中派生类可以通过 public,protected 和 private 三种修饰符决定基类成员在派生类中的访问级别。

2025-03-15 20:20:20 363

原创 【教程】如何学习 C++

总之,C++ 的学习是一个漫长的,但有技巧的道路,你的目标不是学完所有的 C++ 知识,而是学习 C++ 知识可以满足你当前的需要即可,如果你非常感兴趣,当然也可以深入下去探索。

2025-03-15 16:31:05 733

原创 【教程】多级排序 C++

在实际开发场景中,经常会出现多级排序的需要,例如一个商品,它由字段商品种类 ID,生产日期,保质期组成,要求对多个商品进行排序。首先以商品种类 ID升序排序,如果商品种类 ID 相同,则按照生产日期降序排序,如果生产日期也相同,则按照保质期升序排序。面对上面的场景,在 C++ 中我们可以利用std::sort函数来实现。

2024-12-07 19:51:34 376

原创 【教程】Leetcode 必知必会常用数据结构与函数(C++ 版)

【代码】【教程】Leetcode 必知必会常用数据结构与函数(C++ 版)

2024-11-24 16:31:16 383

原创 【教程】Git 标准工作流

Git 是日常开发中常用的版本控制工具,配合代码托管仓库(如,Github,GitLab,Gitee 等)用来实现多人多版本的协作开发。但是 Git 的命令纷繁复杂,多如累卵,不可能也不需要全部搞懂,只需要掌握常用的 Git 命令即可。然而,单个 Git 命令不足以支撑一个完整的 Git 版本管理流程,因此本文主要介绍实际开发场景中,如何通过组合 Git 命令来实现一套完整的代码管理流程。

2024-11-02 18:18:58 1154

原创 【教程】Leetcode 必知必会常用数据结构与函数(C 语言版)

示例// 一维数组// 二维数组// 为第一行(维)申请空间i < 10;i++) {// 为第二行(维)申请空间。

2024-08-25 11:12:08 1095 2

原创 【教程】Hexo 部署到 Github Page 后,自定义域名失效的问题

近期给 Github Page 上托管的静态网站映射了自定义域名(),之后发现每次更新并部署 hexo 到 Github Page (hexo d)后就会出现自定义域名失效的问题。原因也非常简单,当你在 Github Page 上映射了域名后,Github Page 会在你的仓库下自动生成一个 CNAME 文件(如果你的 Github Page 是在其他分支,则是在其他分支下生成 CNAME 文件)。

2024-07-10 17:07:24 930

原创 【教程】Github Page 添加自定义域名

Github Page 是 Github 提供的一个可以从 Github 仓库上托管静态网站的功能服务。默认当你建立起一个仓库后,在对应会有一个可供浏览的静态网站,例如,其中,是我的 Github 账户名字,是我的某个仓库名字。然而很多时候我们希望能够使用自己的域名来替代默认的域名,以体现出自身网站的风格,而 Github Page 也提供了这种域名映射的能力,可以将自定义域名更换为自己的域名。虽然 Github Doc 提供了指导文档,但该文档书写的不够友好,不适合新人阅读。

2024-07-09 18:29:42 5926 5

原创 【教程】hexo 更换主题后,部署在 Github Page 无 CSS 样式

最近更换了 hexo 的主题后,重新部署到 Github Page 上发现不显示 CSS 样式,但在本地启动时又是正常的效果。此外,检查资源请求,发现多个 .css 文件请求 404,判断可能部署后路径除了问题。本文先讲一下如何更换主题,然后讲一下如何修改路径,让样式能够被正确请求。

2024-06-17 19:16:08 1630

原创 【教程】ubuntu20.04 下配置 Charm-crypto 0.5 实验环境

Charm-crypto 是一个基于 Python 的密码学框架,最大的特点是可以基于它进行密码学方案的原型设计,因此绝大多数的相关论文中都以此为平台进行实验验证。但是由于 Charm-crypto 项目整体比较老旧,更新维护的很少,所以当下进行部署安装经常会遇见操作系统不兼容,依赖库版本不匹配等问题。在看了很多网上安装教程后,感觉挺麻烦的,但是实际操作过后,其实也挺简单的,版本兼容的问题也不大。

2024-04-16 19:37:40 3954 29

原创 【学习笔记】【最全!!】C++ 中 static 关键字的作用

在 C/C++ 中,关键字static在不同的应用场景下,有不同的作用,这里总结一下,避免在使用时弄混。我按照以下的逻辑来分类static的作用场景static 作用在变量上static 作用在全局变量上:限制全局变量在本文件上static 作用在局部变量上:即使离开变量作用域,也保存变量值,比如用作计数器static 作用在成员变量上 :对象间共享该变量static 作用在函数上static 作用在函数上:函数可见性限制在本文件中(即使函数被声明在头文件,引用该头文件的其他cpp。

2023-09-05 20:21:50 1854 1

原创 【学习笔记】C++ 中的预编译器操作符(#,##,#@)

在#define的指令下,有三种预处理器操作符(其中#@为微软特供),它们的主要作用是是将宏参数字符串化,字符化和 token 连接的作用。

2023-06-15 15:09:22 1299

原创 【教程】在 Visual Studio 2015 上对 C++ 进行单元测试

本文的测试环境是 Visual Studio 2015,高级别版本(如,2017,2022)的操作略有不同,但提供了更强大的测试功能,这两种版本 IDE 下的测试方式,可以阅读官方文档。

2023-06-01 16:22:29 3476

原创 【学习笔记】Windows 下线程同步之互斥锁

简介:互斥锁是一种同步对象,当没有任何线程拥有互斥锁时,互斥锁处于有信号(signaled)状态,当互斥锁被某个线程拥有,则它处于无信号状态(nonsignaled)特点任何一个互斥锁,一次只能被一个线程拥有可以跨进程使用,即进程间同步适用场景:同步一些共享资源,比如共享内存(shared memory)

2023-05-24 15:45:47 1873 1

原创 【学习笔记】读取文件中的字符串与 fgets 的坑

今天写一个读取文件中字符串的函数,理论上应该是很简单的,但是写的时候发现输出的结果总是比文件中的内容少一个字符,并且通过排查,问题就是出在fgets的第二个参数size上,而之所以出现这个问题,是因为网上大部分,包括英文的独立博客中的文章都在fgets的介绍上,对size这个参数的描述不清晰,比较模糊,容易让人理解错误,而他们举的例子往往会掩盖由此导致的问题,下面就来看看。

2023-03-15 16:34:45 742

原创 【教程】Windows 下 C++ 项目内存泄漏检查

可以看到不同之处在于,首先它多了几列的数据,其中 Diff 表示 Difference,表示比较的差值,那么比较的内容是什么呢,看最上面一行有一个。点击 可以看到这个对象的函数调用栈信息,这对于我们的调试是非常有用的,我们还可以右键选择跟踪进这个函数调用的位置。的选择框,里面的内容是我们的第一个 Snapshot,所以这里比较的是我们测试的第一个断点时的内存状态。,记录下此时的内存状态,Memory Usage 会显示出内存增长的情况,如下图所示。,记录下此时的内存状态。

2023-03-14 15:48:50 2049

原创 【学习笔记】C++ 下字符串与数字的拼接

【注】当 base 为 10 的时候,且当 value 为负数,那么转换后的字符串结果会自动加上一个。不支持格式化浮点类型的数据,但你可以通过其它方式截断小数点后的内容。【注】str 这个参数必须要足够容纳转换后的字符串大小。(-),而其他进制的时候,value 会被视为无符号。【注】要使用 string 和。类型的指针和数组都可以。

2023-01-08 15:03:09 3414

原创 【学习笔记】顺序容器的表格方式总结 C++

更新中…

2022-12-09 14:22:56 770

原创 【学习笔记】C 语言中未开辟地址的指针作为函数参数传递的问题

先来看下面的一段程序,理论上我们期望的结果是 inner 和 outer 部分都输出 10,但实际运行的时候, 会报错 p 是一个 nullptr 不能输出,但是我们不是在 pointerSon 中对 p 指针开辟了空间吗,开辟了空间后也对它赋值了 10 啊,为什么没有得到期望的结果呢?事实上,导致这个结果的原因是,在 中传递的参数并不是指针传递,而是值传递,值传递是实参的拷贝副本,所以当执行完 后, 里的 p 并没有改变,我们通过图画来阐述这个过程【注】图中 0x123 和 0x456 为演示方

2022-10-18 10:50:35 554

原创 【教程】在 visual studio 共享和重用项目属性

在 visual studio 下开发项目时,通常会配置项目的属性,比如引入外部头文件,引入外部库之类的尤其是不同的开发模式,debug和release,不同的开发平台,x64和x86等,配置的项目都是不共用的。这意味着每次切换不同的开发模式和平台,或者每次开启新项目(但项目属性一致)都要重新手动配置这些属性,这显然是不合理的。其实 visual studio 提供了共享和重用项目属性的方式,下面就来看看。

2022-09-21 10:48:57 2300

原创 【学习笔记】在 windows 下创建多线程 C++

【注】in 表示输入参数,out 表示输出参数,optional 表示参数可选。时,“所有线程执行完毕” 这句话始终出现在输出语句的结尾,而当。_beginthread 与其属于同一类方式,这里不单独说明。【注】当如果你只用等待一个信号的时候,可以使用。函数来创建线程,同时它具有更高的安全性。小节中实例的代码修改如下部分,以演示。指向数据、代码或不可访问的区域,可以看到,该语句将不会在最后出现。中的实例做了很小的修改即可运行。【注】如果多线程要调用。有四种终止运行线程的方式。

2022-09-12 16:48:05 2046

原创 【学习笔记】同一个 solution 的不同 project 使用相同的头文件

有时候在开发中,同一个 solution 下的不同 project 需要共享一个头文件,下面就来实现这个功能在本文中 project 等同于项目的语意。

2022-09-07 20:32:41 513

原创 【学习笔记】windows 下的 shared memory(共享内存)原理与实践

共享内存是一种进程间的通信机制(其他的通信机制还有管道,消息队列等)。进程之间通过访问一块共享的空间,来进行数据的通信(交换)。具体来讲,就是将一份物理内存映射到不同进程各自的虚拟地址空间,这样每个进程都可以读写这片物理内存。共享内存是速度最快的一种进程间通信(IPC)方式,它直接对内存进行存取,比操作系统提供的读写系统服务更快。由上面的描述我们发现,当多个进程对同一片空间进行读写时必然会出现同步的问题,所以一般共享内存会和信号量或者锁机制一同使用,保证数据的完整性。

2022-09-05 15:11:34 10805 8

原创 【教程】visual studio debug 技巧总结

更新中 …基础的调试技巧基本更新完毕,visual studio 提供了强大的调试功能,许多东西需要大家动手体验。

2022-09-04 21:02:44 14335 5

原创 【学习笔记】内存的连续分配管理方式

因为每个进程都是“量体裁衣”式的进行分区分配,所以不存在内部碎片,但是很可能存在外部碎片,假如当前剩余的空闲分区是 2MB,而要装入的进程最小都是 3MB,那么这个空闲分区(在没有进程换出的情况下),就一直无法使用,称之为外部碎片。比如我们最开始讲的单一连续分配,因为整个用户区都只分配一个进程,而进程大小可能远远小于用户区大小,这时空闲的用户区又不能提供给其他进程使用,我们就可以称这些空闲用户区是内部碎片。如下图,有 4 个进程的大小依次是 20MB,14MB,18MB,8MB。

2022-09-02 15:31:57 1437

原创 【学习笔记】memcpy_s 函数与坑

所以实际填写的值应该是 destSize 和 count 都为 10 * 4(即 10 个元素,每个元素占用 4 个字节)。函数赋值到 dest 中,最开始我以为 destSize 和 count 表示的是元素个数,于是填写的都是 10,如下。这里有一个坑,那就是关于 destSize 和 count 的值,它们都是指的字节数(最开始我以为是元素个数)。是在内存级别上直接进行拷贝操作,但注意它一次拷贝的数量为一个字节,而不是一个位(比特)。函数来计算 src 和 dest 占用的元素的字节数,

2022-08-17 11:45:05 18598 2

原创 【教程】油猴脚本开发入门教程

右击顶部工具栏中的油猴插件图标,在弹出的操作框中选择添加新脚本。之后你将进入一个编辑页面,我们来看看在这个编辑页面中一些基本的知识点。这里重要的点有两个,一个是设置匹配的网站,默认的初始生成的代码中,没有对 https 的网址进行匹配,仅对 http 网址进行了匹配,所以要自己添加。第二个就是通过 标签来添加你本地的文件地址,这样当你在本地进行开发的代码,就可以直接在对应的网站上执行了。当用户使用 请求远程数据的时候,需要使用 connect 指定允许访问的域名,支持域名、子域名、IP地址以及

2022-06-14 16:26:48 36555 12

原创 【学习笔记】go 生成随机数

核心go 的标准库(math/rand)中已经为我们提供了产生伪随机数字的核心方法,它们分别是用于产生种子的 rand.Send(value) 和用于产生伪随机数的 rand.intn(n)。代码示例rand.Send(value)rand.Seed() 函数用于设置种子值以生成伪随机数。如果每次都是用相同的种子值,即 value,那么会生成相同的伪随机数集合,因此我们需要不同的种子值,而手动更新种子值显然是麻烦的,所以最好的做法就是使用时间戳的形式。通常我们用 time.Now().UnixNa

2022-05-31 11:39:57 6553

原创 【经典回顾】HTTP 的请求与响应报文

基于 HTTP1.1,也就是目前最常用的 HTTP 协议版本,涉及部分 HTTP/2。

2022-05-19 15:15:48 1816

原创 【学习笔记】virtual 关键字,虚函数与多态

就是一个函数在不同的场景下,表现出不同的状态(行为,特性等)。下面举两个例子,第一个例子比较偏生活。比如你是一家公司的 CEO,你手下有销售部,运营部,技术部三个部门,你对三个部门下达一个指令。

2022-05-12 14:32:37 3568

原创 【学习笔记】查看你正在使用的 C++ 标准

在初学 C++ 时,经常听到 C++11,C++14,g++,msvc 等术语,它们之间既有关系,又是指代不同的东西,下面就来简单介绍一些这些术语之间的关系。

2022-04-21 19:06:09 25722

原创 【学习笔记】在 Github Page 上托管基于 Vue 的项目

环境vscode前言本篇博文仅仅提供如何将 vue 项目部署在 github page 的基本操作,至于项目的内容由读者自己决定。同时这是最基本的操作,所以在复杂的项目部署中,请根据具体情况,采取解决措施。1. 新建仓库首先新建一个仓库,这里我新建了一个 test 的仓库。然后,我们将这个仓库 clone 到本地。git clone git@github.com:yourname/reponame.git,这里的用户名和仓库名都要替换成你的。2. 打包 vue 项目并上传首先,

2022-04-20 20:48:55 2192 4

原创 go 的时间操作

前言本篇所有输入,均用 p 代替 // 用 p 简写 p := fmt.Println获取当前时间// 当前时间 now := time.Now() p("当前时间:", now) // 当前时间: 2022-04-12 16:58:13.1294251 +0800 CST m=+0.005672001获取年获取年,其它如月,日等内容同理// 获取年,其它如月,日等内容同理 year := now.Year() p("当前年份:", year) // 前年份: 2022获

2022-04-12 19:37:38 1152

原创 【数据库】原生 go 执行的基本 sql 语句

提示建议你先看这篇文章《【数据库】原生 go 与 MySql 的基本示例》,熟悉基本的 go 如何连接 MySql,及一些基本的配置,同时我也会使用该篇文章中已经创建好的数据库和数据表。环境配置go1.17MySql8.0基本数据库/表内容已经存在的一个数据库:bookInfo已经存在的一个数据表:books插入,删除和更新操作在 database/sql 这个官方包中提供了 Exec 和 ExecContext (该方法提供了 context.Context 用于上下文的选择)

2022-04-08 11:27:49 1963

原创 【数据库】原生 go 与 MySql 的基本示例

go 原生库中提供了 databases/sql 来进行数据库的操作,同时要配合数据库驱动一起使用。你可以在这里选择你需要的驱动:链接。环境配置go 1.17MySql8.0创建数据库和数据表先创建一个名为 bookInfo 的数据库。# 创建数据库CREATE DATABASE bookInfo;# 使用该数据库USE bookinfo;在此数据库中创建一个数据表,并预先设置一些数据。CREATE TABLE books ( id INT AUTO_INCR

2022-04-08 10:53:44 1252

原创 【以小见大】go 中文件的复制

文件复制的过程图解函数,方法解释func Open(name string) (*File, error)Open 是打开文件的其中一种方式,是比较简洁的一种。它返回一个 *File,这是一个文件对象(文件句柄,文件指针)。拿到 File 的指针,就拿到了这个文件,可以对文件进行一系列的操作(如,关闭,读取等)func OpenFile(name string, flag int, perm FileMode) (*File, error)OpenFile 是打开文件的其中一种方式,是更一般性

2022-03-15 10:38:05 819

原创 Hyperledger Fabric 中的世界状态和区块链

世界状态就是存储的当前值(键值对形式),其目的是,因为当前值往往存在频繁的操作,如果通过遍历的方式获取,那么就太麻烦了。如果没有世界状态,那么这个概念就可以退化为比特币中的 UTXO 集,在比特币中,没有某个人账户余额的直接数据结构,你在钱包或浏览器中看到的所谓的余额是钱包或浏览器自己提供了一个长期维护 UTXO 集的计算结果,实际的比特币数据结构中没有这些内容同时世界状态还有一个版本号,用于反应状态的更新,当每一次发生状态更新,版本号就会自动增加。

2022-02-17 17:26:36 13688 5

编码:隐匿在计算机软硬件背后的语言(美)佩措尔德.pdf

编码:隐匿在计算机软硬件背后的语言(美)佩措尔德.pdf(高清完整 带有完整pdf书签目录)

2018-01-12

空空如也

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

TA关注的人

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