自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 资源 (1)
  • 收藏
  • 关注

原创 如何使用命名空间管理C++代码

namespace 命名空间名称 {// 代码 }} }为了保证代码的可读性和可维护性,在定义命名空间时,你应该遵循一些最佳实践。例如,命名空间的名称应该简洁明了,并且与代码的功能相关;命名空间中的代码应该是独立的,不依赖于其他代码。在实际开发中,你可能需要使用多个命名空间。在这种情况下,你应该让每个命名空间负责完成特定的任务,并与其他命名空间保持隔离。这可以使代码更容易维护和扩展,并且可以防止在代码升级过程中发生不必要的冲突。总的来说,使用命名空间是一种高效管理 C++ 代码的方法。

2023-02-10 19:02:44 2077

原创 vcpkg + cmake + vscode 配置教程

本文是使用vcpkg cmake vscode进行 C++ 开发的环境配置教程。

2023-02-08 16:01:56 2119

原创 OOP抽象那一套没有你想象的那么万能

总的来说,最好只在抽象带来的价值超过耦合时才应用抽象。这意味着,在没有使用抽象的时候,代码可能会有一些重复。但是我认为,在修改代码时,少量的代码重复要比过度耦合带来的痛苦要小得多。

2023-02-06 19:10:43 793

原创 为什么你应该减少代码注释?

与代码注释相比,代码是表达意图的最好方式。所以总的来说,如果你需要使用人类语言来解释你的代码,看看你是否可以让你的代码更加人性化,更加易读。

2023-02-05 15:05:56 477

原创 代码中的命名小技巧

《重构: 改善既有代码的设计》的作者 Martin Fowler 在一篇博客[1]中引用这样一段话:There are only two hard things in Computer Science: cache invalidation and naming things.计算机科学中只有两件难事:缓存失效和命名事物。-- Phil Karlton由此可见,在计算机科学中命名一件事物是多么的困难。这当然也包括在代码中对变量、类型、类等进行命名。Part1命名的困难第一、变量代表了一组状态

2023-02-04 13:44:45 597

原创 为什么要拒绝嵌套代码?

linux 内核的最早作者 linus torvalds 在 linux 内核样式指南[1] 第一节中提到:if you need more than 3 levels of indentation, you’re screwed anyway, and should fix your program.如果你需要超过3级的缩进,你无论如何都搞砸了,应该修复你的程序。Part1什么是嵌套嵌套代码是指您向函数中添加更多的内部块。一般认为,每一个左大括号都为函数增加了一个深度。下面介绍一些例子:in

2023-02-03 21:28:48 575

原创 PicGo配置GitHub图床

2021-08-21 23:50:15 189

原创 Static关键字-C

当用于不同的上下文环境中,static关键字具有不同的意思。当它用于函数定义时,或用于代码块之外的变量声明时,static关键字用于修改标识符的链接属性,从external改为internal,但标识符的存储类型和作用域不受影响。用这种方式声明的函数或者变量只能在声明它们的源文件中访问。当它用于代码块内部的变量声明时,static关键字用于修改变...

2021-08-08 12:55:46 97

原创 [FAILED] failed to start pkgfile database update in Manjaro

问题描述环境:Manjaro在开机加载时出现上述错误。解决方法执行:sudo pkgfile -u重启即可。参考链接:https://forum.manjaro.org/t/failed-failed-to-start-pkgfile-database-update/31731/ ...

2021-07-29 13:38:27 415

原创 Manjaro 安装搜狗中文输入法

本文用于分享和备忘,使用于最新的Manjaro版本过程本教程仅限使用于Manjaro的最新版本,Arch系其他系统使用出错本人概不负责首先,确认自己具有如下的先决条件:自己的Manjaro已经配备好了archlinuxcn源,如没有,请按照如下命令添加清华大学的archlinuxcn源:sudo vim /etc/pacman.conf 或 su...

2021-07-26 07:08:06 940

原创 树莓派改装计划

一直以来我都将一块树莓派作为我的服务器来使用,但是夏天到了,散热成了新的难题。既不想让风扇一直转(吵人),又想让CPU温度到达一定程度的时候启动,这确实有些棘手。查阅了相关达人的经验之后,我决定用继电器来解决这个问题。思路由于树莓派的控制脚针GPIO的电流并不足以带动风扇,所以使用继电器来间接控制风扇。pin2、pin4直接连接到电源,不受CPU...

2021-07-25 13:36:28 272

原创 二叉树查找

介绍二叉树是树的一种特殊情况,规定一个根节点只能有两个孩子节点。如果再规定,左子数中的所有元素都要小于父亲节点的元素,右子树中所有的元素都要大于父亲节点的元素,这样的二叉树就是二叉查找树。找到一个元素的时间复杂度就是O(logN)。二叉树的定义是一个递归定义。定义我们定义它的数据结构。/* 二叉查找树的ADT实现*/#include...

2021-07-12 23:23:23 111

原创

介绍栈是一种特殊的表,规定它只能从栈顶插入数据(Push),也仅仅只能从栈顶取出数据(Pop),也就是先进后出(FILO)。它在程序设计中非常重要,例如函数的调用使用的就是栈结构。栈也同样有两种实现,一种是数组实现,另一种是链表实现。一般来说,大部分情况下使用数组实现。我们只将很少的数据放入栈中。数组实现数组实现的好处是时间复杂度底,仅仅操作一个...

2021-07-12 16:15:45 111

原创 栈的应用——括号匹配

介绍栈可以做一些有意思的应用,例如括号的匹配。在编写C程序中,编译器可以检测括号是否匹配,以及哪里匹配错误。这可以轻松的使用栈来实现。实现当读取到左括号的时候入栈(Push),当读取到右括号的时候,将弹出栈顶元素进行比较,检测是否是匹配的符号。如果全部匹配并且栈为空,则括号匹配,否则不匹配。代码代码使用数组栈,定义最大栈容量为20。/* ...

2021-07-12 05:30:32 347

原创 LibreOffice 设置为中文字体

前言在Manjaro或者Archlinux中安装完LibreOffice之后,发现无法将其设置为中文字体。参考Wiki发现,还需要安装中文字体包,libreoffice-fresh-zh-cn方法首先安装字体包sudo pacman -Sy libreoffice-fresh-zh-cn之后打开LibreOffice,依次点击Tools->Options->Language Settings->Languages点击切换到简体中文重启软件即可!...

2021-07-09 20:35:57 4323 1

原创 vscode在编译c\\c++时报错“The PrelaunchTask ‘g++‘ terminated with exit code 1“

原因我这里是因为之前在Linux的项目完整的复制到了Windows下面,所以gcc和gdb的路径配置错误,只需要修改当前目录下.vscode中的配置文件中的路径地址即可。image-20210616224623597操作修改gcc和gdb的路径即可。image-20210616224718715image-20210616224737532 ...

2021-06-16 03:27:17 2078

原创 表的应用——多项式计算

数组实现介绍数组实现较为简单直接。数组下标代表的多项式的次方数,例如定义一个数组Array,那么Array[0]就代表次方为0的项的系数,以此类推。所以我们发现,由于数组是连续的,所以对于稀疏多项式来说,它所浪费的空间较大。定义#include<stdio.h>#include<stdlib.h>#define Max...

2021-06-10 01:53:01 233

原创 表的实现和应用

表的实现和应用概念表是数据结构中最基本也是重要的结构。表是存储一列有顺序的数据的容器。这很类似于数组的概念,但是数组仅仅是一种数据结构,不包括对于数据的各类操作。表分为顺序表和链表。顺序表是在内存中连续的一组空间构成,而链表可以由不相邻的空间构成。由于顺序表比较简单,所以我们重点实现链表。链表我们首先定义基本的结构体和操作原型。使用 ADT 模型...

2021-06-04 07:31:12 255

原创 最近在做的事情

最近在做的事情最近在学习 Rust 语言,感觉还是挺好用的。当所有事情都结束之后,即使结局不是太好,可是我仍觉得一阵轻松。至少总算有了一个答案,不用再去担忧什么了,没什么比这更糟的了。我将所有的时间和精力都放在未来的事情上面,这种向上的感觉我已经好久没有过了。本来计划好的一周一章的 Tkinter 教程也没有按时完成,虽然感觉使用的局限性很大,但...

2021-04-28 13:36:50 85

原创 failed to resolve: maybe a missing crate front_of_house ?failed to resolve: use of undeclared crate...

前言在学习 Rust 时,官方文档 的7.3节的例子中(创建模块和引用),出现了以下错误:image-20210422191155704解决方法方法也很简单,如果是使用 cargo new --lib name创建的模块的话,默认在 src/lib.rs中的第一行会添加:#[cfg(test)]只要注释掉这一行即可。即//#[cfg(test)]...

2021-04-22 18:00:23 1263

原创 用 Rust 编写一个温度转换程序

用 Rust 编写一个温度转换程序感想不得不说,rust 的规矩真是多~~,这不行那不行,可能就只剩下安全了。代码use std::io;fn main() { println!("Conversion between f and c"); println!("Please enter like this : 3f or 32....

2021-04-20 17:51:32 190

原创 Tk 的基本概念-组件—Tkinter 教程系列03

Tk 的基本概念-组件—Tkinter 教程系列03前言Tk 系列教程:Tkinter教程系列01——引言和安装TkTkinter教程系列02——第一个真正的 GUI 程序通过上一节的程序实例,我们掌握了编写一个 Tk 程序的基本步骤和完成它需要的一些工作。这一节,我们回过头来看看这些程序,并且专注于讲解对于理解 Tk 至关重要的三个概念:1、组...

2021-04-17 13:18:42 185

原创 无题

无题我们都闷着头往前走,不再回头。我怀念过去天真无忧的日子,也珍惜现在我拥有的一切。可是我究竟在追求着什么呢?无数人走过的路像个恶咒一样压迫着我,可是逃离了这些,我还拥有些什么呢?我该往哪里去呢? ...

2021-04-13 14:09:06 66

原创 第一个真正的 GUI 程序——Tkinter教程系列02

第一个真正的 GUI 程序——Tkinter教程系列02前言Tk 系列教程:Tkinter教程系列01——引言和安装Tk我们将编写一个英尺和米的转换程序,通过这个程序,我们将会了解一个真正的实用程序该怎么设计和编写,我们也将会了解到 Tk 程序内部的基本样子。不必完全掌握里面的所有知识,更多细节将会在之后的章节中讲到。本节仅要求了解即可,使读者明...

2021-04-10 02:53:28 93

原创 在Windows下配置Linux远程开发环境

在Windows下配置Linux远程开发环境文章目录在Windows下配置Linux远程开发环境前言支持的Linux发行版系统需求本机远端机器配置vscode Remote.SSH.Path配置 vscode remote.ssh:use local server连接远程主机免密登录删除远程主机参考文档前言由于需要,我从之前的 kubuntu 又换到了 Windows10。不得不感叹,Windows的图形界面用着真的舒服,可是我Linux开发环境怎么办。搜索了一下,发现使用 vscode 的远程开发

2021-04-07 22:10:56 183

原创 Tkinter教程系列01——引言和安装Tk

Tkinter教程系列01——引言和安装Tk引言这个教程针对于 Tkinter 的初学者而攥写,但也应该具有 Python 的基础知识。此教程是我学习 Tk 的记录和总结,希望能够帮助到他人。此教程针对 Tk 8.5或者更高版本,如果不是,请安装最新版。本教程使用 Python 进行演示,如果使用其他语言,Tk函数库的大部分都是相同的,详细区别请...

2021-04-01 09:48:11 529

原创 undefined reference to `pthread_create' in Linux

undefined reference to `pthread_create' in Linux情况说明来源:操作系统概念第九版——第四章 多线程编程。在进行Linux系统多线程编程学习时,使用了 pthread_create这一系统调用。但是在使用gcc编译时出现了报错,具体如下:代码:#include <pthread.h>#i...

2021-03-31 01:21:26 353

原创 OSC9th 操作系统概念——第二章编程题

OSC9th 操作系统概念——第二章编程题题目描述2.3节描述了一个程序,以将一个文件内容复制到另一个目标文件。这个程序首先提示用户输入源文件名和目标文件名。利用windows或POSIX的API,编写这个程序。确保包括所有必要的错误检查以及源文件是否存在。程序#include <stdio.h>#include <stdli...

2021-03-15 22:22:43 879

原创 Ubuntu 微信 linux版最新可用——UOS魔改版

Ubuntu 微信 linux版最新可用——UOS魔改版前言去年,UOS发布了与微信合作的Wechat linux版本。虽然这只是一个网页套壳应用,但是好在能够使用,解决了基本的交流使用的问题。wechat uos版增加了验证机制,只有UOS专业版才能够登录成功。本魔改版修改了验证机制,目前可以正常使用,分享给大家。Deb包https://fil...

2021-02-26 14:11:26 2494 1

原创 屋顶的彩霞

屋顶的彩霞傍晚的时候,我喜欢一个人爬到屋顶上面,看天边飘在田野上的一大簇火红色的彩霞。龙卷风似的云朵裹着烛芯似的霞光,慢慢地变小,隐去,最后消失在天际边的寂静之中。不知名的乌鸦在枯陋的树枝间停歇,微凉的风亲拂我的脸颊,我目光所不能及之处是我即将要奔赴的未来。大海和宇宙就在我的头顶,有一刻我觉得,我就是宇宙的统治者,是天下的观察员。夜幕慢慢地拢聚,...

2021-02-18 09:56:49 76

原创 Linux 同步网络时间、设置时区

Linux 同步网络时间、设置时区设置时区使用命令:dpkg-reconfigure tzdata,选择需要的时区,这里选择亚洲-上海。image-20210216125415401image-20210216125458321同步时间安装ntpdatesudo apt install ntpdate# 同步网络时间,这里是中国的公共NTP服务...

2021-02-16 02:20:10 63

原创 Linux 下配置JDK环境变量

Linux 下配置JDK环境变量下载JDK压缩包从Oracel官网下载JDK,这里给出JDK11的官网链接 https://www.oracle.com/java/technologies/javase-jdk11-downloads.html解压创建文件夹 /opt/javamkdir /opt/javacd /opt/java解压sudo ...

2021-02-13 21:04:44 39

原创 openSSH实现免密登录

openSSH实现免密登录001首先在客户端使用 ssh-keygen -t rsa 生成一对密钥,当系统提示输入与密钥相关的密码时,直接按下 Enter 键即可。这样,会在 ~/.ssh/ 下生成两个密钥,一个是私钥 id_rsa,一个是公钥 id_rsa.pub。image-20210213161224537002使用 scp命令将公钥 id...

2021-02-13 13:10:29 410

原创 Linux 开放防火墙端口命令

Linux 开放防火墙端口命令Centos系开放22端口:sudo firewall-cmd --zone=public --add-port=22/tcp --permanentUbuntu系sudo ufw allow 22

2021-02-13 00:36:48 51

原创 GNU\Linux 开机时自动挂载硬盘

GNU\Linux 开机时自动挂载硬盘方式Linux 通过 /etc/fstab配置文件,来确定在系统启动时需要以何种形式挂载指定的硬盘系统。所以为了实现开机自动挂载指定硬盘,我们需要以root用户修改这个配置文件。image-20210209130722260配置说明我们只需看第三行的通用挂载格式即可。在 fstab文件中,每行数据都分为六个字...

2021-02-09 09:39:37 52

原创 GNU/Linux 统计文件夹(目录)占用的磁盘大小

GNU\Linux 统计文件夹(目录)占用的磁盘大小在Linux中使用 ls时,显示的文件夹大小始终为4kb。这是因为在Linux 中目录也是一个文件,里面存储着特有的数据结构,所以 ls 显示的就是这个目录文件的大小,并不是这个目录中所有文件的大小的总和。命令使用 du 命令就可以统计一个目录下所有目录所占用的真正的磁盘大小。du [optio...

2021-02-09 03:52:53 106

原创 网易免费企业邮箱的SMTP、POP服务地址和端口

前言为了实现网站的邮件发送业务,我查找了自己搭建邮件服务器的一些资料,发现这是很困难很不现实的。不仅消耗精力,更是违反了相关法律规定。于是我申请了网易免费企业邮箱,传送门。最多支持50的用户,非常够用了。但是,我在配置第三方客户端时遇到了困难,主要是smtp服务的地址和端口并不是那么的清楚,官方的资料上也是错误的信息。最终还是被我试了出来。注意!...

2021-02-03 09:22:45 7581

原创 加快GitHub的git clone和release的下载速度!

加快GitHub的git clone和release的下载速度!话不多说,直接上办法!git clone的提速办法将git链接中的 github.com改为 hub.fastgit.org即可享受飞一般的速度。例如:git clone https://github.com/llvm-mirror/clang.git改为git clone http...

2021-02-01 01:03:50 622

原创 Ubuntu Linux下 禁止服务开机自启动

前言由于学习需要,电脑上安装了MSSQL和MySQL。目前课程已经结束,暂时用不到数据库了。但是他们还是会在开机自启,而且占用的内存还不少,尤其是MSSQL。所以就查了一下怎么禁止他们开机自启。使用Systemctl管理工具systemctl is-enabled servicename.service #查询服务是否开机启动systemctl...

2020-12-29 20:17:39 643

原创 说什么

说什么每到低谷期的时候,我总想说些什么东西。可是话到嘴边才发现自己什么也说不出来,脑袋里空空的,肚子里也是空空的。我感觉这是自己最脆弱的时候,以往坚强的心可能会砰地一声碎成一地。我想找些什么事情做,以来缓解我略微焦虑的心情。想来想去,还是看会书吧。我还记得高中班主任收走我的那本《山河之书》,我可能要记一辈子了。后来买了本新的,到现在也没有读完。不...

2020-12-14 09:31:03 71

操作系统概念(原书第9版)英文PPT习题解答.7z

操作系统概念(原书第9版)英文PPT习题解答等

2021-09-28

空空如也

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

TA关注的人

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