hexo博客搭建教程
文章内容:
推荐观看视频教程准备工具:
node.js:
node -v
Git:
git --version
Hexo:
npm install hexo-cli -g
hexo -v
在github上建一个仓库,仓库名叫:注册名.github.io,也就是yswm-m.github.io
然后将下面的Add a README file选项给勾上
然后在任意一个盘新建文件夹,在文件夹里打开Git Bach Here,输入ssh查看密钥是否安装,然后输入:ssh-keygen -t rsa -C "3269661045@qq.com",然后按4次回车
这时在电脑的C盘下的用户文件夹里已经生成了一个.ssh文件夹,将里面的id_rsa.pub文件打开,复制里面的密钥,回到github,在个人中心里点击Setting,然后在侧边栏点击SSH and GPG keys,然后点击New SSH key按钮
将密钥复制进Key里,Title可以随便填,点击Add SSH Key保存,
回到Git Bach Here输入:ssh -T git@github.com 再输入yes,检查密钥 ...
最近找工作的一些想法
记得去年7月份的时候我大专毕业刚出来实习,进了一家我们学校的老师开的互联网外包公司,底薪2800,测试岗,给公司的后台管理系统做软件测试,天天加班,后面因为我不懂人情世故,没有主动留下来加班,在实习期第3个月的时候就被裁了,也不知道是不是那个老师故意的,目的可能是为了骗政府的就业补贴。
然后我为了继续完成剩下那3个月的实习,又待在本地干了3个月的少儿编程教师,比较恶心的是那个少儿编程的老板看我是实习的,故意压我工资,上一个月的课才给我几百块钱工资,后面我实习期结束就趁早跑了。
然后在今年2月份的时候我又去了广东那边找专业相关的工作,去了广州又去了佛山,投了很多位置都没人理我,实在是没办法了,后面才进厂打了几个月的螺丝,打螺丝的时候,旁边有个初中毕业的打的比我快的多,那时候我一台机器要打8颗螺丝,本来分配给我的位置就差,后面那个拉长他还开麦克风广播骂我,说我拖整条线的进度,我真的是一直在忍,终于过了两个月我还是跑了,我也不知道为什么,就是非常抗拒进厂。
然后5月份的时候我又回到本地找了一家做数据标注的公司入职,数据标注一天要拉2000多个框,像流水线一样,我第一天试岗的时候一整天手都 ...
C++设计模式(单例模式)
更多教程笔记请查看我的上一篇文章:点击跳转C++设计模式自学之旅开始!本次将介绍C++设计模式里比较基础的模式:单例模式
C++的设计模式很早就有了,不过我后面去学Qt了,一直没有时间好好把设计模式过一遍,下次有时间我再更新关于Qt的教程……
据说所有的大公司,软件设计的开发人员,都恨不得给自己写的所有代码都套上设计模式,是否真的有那么玄呢? 今天我们来一探其中的奥秘
单例模式代码://设计模式-单例模式
#include <iostream>
using namespace std;
//所谓单例模式就是程序只有一个实例
class Singleton
{
public:
~Singleton()
{
cout << "~Singleton() construct" << endl;
}
//提供一个接口来让用户创建对象,让用户只能通过这种方式创建
//加上static是因为如果用户没有对象那么就无法创建对象,于是可以把这个接口定义到全局变为静态
// static Si ...
C++11(lambad表达式)
更多教程笔记请查看我的上一篇文章:点击跳转C++11(lambad表达式)自学之旅开始!本次将介绍C++11里新的函数写法:labmda表达式
lambda表达式很早就有了,后来被C++11引入,原本我对lambda的语法一点兴趣都没有,可是之前还在公司的一个学长跟我说lambda表达式很有用,所以我就去学了。
这东西确实挺厉害的,据说发明他的作者认为一切程序的本质都是函数,后面还用了数学公式证明,不得不说数学厉害的人写程序真的强,随便就弄出一个定理和语法规范,让我们都得跟着学。
语法嵌套按值捕获按引用捕获实战函数对象包装器bind机制lambda表达式语法// lambda表达式
#include <iostream>
using namespace std;
//正常函数的写法 有名字,有返回值,有参数列表
int fun(int a, int b)
{
return a + b;
}
int main()
{
/* lambda表达式的本质就是一个仿函数(匿名函数)
也就是一个类里面有一个operator()() 重载小括号
...
C++11(RAll智能指针)
更多教程笔记请查看我的上一篇文章:点击跳转C++11(RAll智能指针)自学之旅开始!本次将介绍C++11最有用的更新:智能指针
长久以来C++的内存管理机制就一直被人诟病,没有GC回收,需要手动释放分配的内存,很容易被忘记释放内存的程序员造成内存泄漏,甚至被linux之父Linus炮轰C++是一门很烂的语言
详情请点击这里但是C++也在不断的改进自身,不断的吸取教训,我相信C++未来会越来越好!
说回话题本身,智能指针是一个可以帮助C++程序员自动释放所分配内存的强大利器,不过用得好和用不好是两回事,下面我们来看一下智能指针的诞生原因:
概念实战概念代码://智能指针
#include <iostream>
#include "stdfix.h"
using namespace std;
// c语言当中对文件的操作
FILE *open_file(char *name)
{
FILE *fp = NULL;
fp = fopen(name, "rb++");
return fp;
}
class CTest
{
public:
C ...
C++11(auto自动识别变量类型)
更多教程笔记请查看我的上一篇文章:点击跳转C++11自学之旅开始!本次将介绍C++11里对比赛比较有用的:auto关键字
auto关键字可以自动的识别一个变量的类型并赋给另一个变量,类似于js中的var,auto的出现让代码中一些单词比较长的容器迭代器变成较短的变量,极大的提升了比赛中选手敲代码的速度,毕竟有些时候手速也能决定比赛的关键胜负。
auto的基本使用代码:// auto的用法,自动识别变量类型,创建一个识别后的变量
#include <bits/stdc++.h>
using namespace std;
int main()
{
vector<int> arr{1, 2, 3, 4, 5, 6, 0};
for (vector<int>::iterator i = arr.begin(); i != arr.end(); ++i)
{
cout << *i << " ";
}
cout << endl;
//上面等价于
for ...
ACM 2022级招新线上预选赛
赛后总结
我感觉这次比赛比较难的就第D题和第E题,一个是简化版背包,一个是贪心,其他的都比较简单,用来招新生的话感觉正好,我估计真的去他们学校比的话也就能全对个四题左右吧,其他全是暴力骗分。
我9点半才看到题目,他们应该都比完了,我花了半个小时就全部做出来了,可惜我不是这学校的 55555
题目描述:
解题思路
没啥好说的,基本上全是暴力,遇到字符'A'就加1,遇到字符'B'就减1,然后用一个变量记录最大的值。
代码//问题A
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int x = 0;
int n;
cin >> n;
string s;
cin >> s;
int num = 0;
int maxnum = 0;
for (int i = 0; i < n; ++i)
{
if (s[i] == 'A')
{
...
十大排序算法总结
学习思路
排序是算法里面经常会考的题目,也是面试题里面会出的经典问题,虽然各种语言本身就内置了sort()排序函数,但是掌握其它的排序算法可以让我们在处理数据上显得游刃有余,同时一些排序算法里面的思想也与数据结构里面的算法思想不谋而合,所以排序算法是每个合格的程序员都必须掌握的。
排序算法练习题目排序算法的分类:
冒泡选择插入希尔归并快速堆堆2.0计数桶基数1、冒泡排序:#include <iostream>
using namespace std;
const int N = 1e8 + 10;
int a[N], n;
void bubble_sort()
{
for (int i = n - 1; i >= 1; i--)
{
bool flag = true;
for (int j = 1; j <= i; j++)
{
if (a[j - 1] > a[j])
{
swap(a[j - 1], a[j ...
高精度模板(加减乘除)
学习思路
高精度是算法里面不常考的题目,但是掌握高精度也更有利于我们学习算法和解决实际开发中所遇到的问题,我们知道int的数据范围是-2^31~2^31-1,而long long 的数据范围是-2^63~2^63-1,那么当一个数超过了long long 的范围,想要计算它的结果就变得十分困难,为此我们转变思路,可以利用字符串数组存储那个数,再通过字符串数组个位转整型数字的方式进行人类熟悉的四则运算,最后再将得到的结果用另一个字符串数组存储起来,字符串数组的范围是无限的,根据计算机的内存进行扩充,计算机的内存有多大就可以存储多大的字符串,这便是高精度算法的思想。
加法减法乘法除法高精度加法模板:(高精+高精)原题链接#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string addfun(string a, string b)
{
string c;
int t = 0;
for (int i = a.siz ...
数据结构再战—约瑟夫环(循环链表)
学习思路
约瑟夫环是一个很经典的题目,有多种实现方法,为了练习链表我决定用三种方法实现:循环链表、数组标志位、数组模拟链表。
原题链接: AcWing题目描述:
N 个人围成一圈顺序编号,从 1 号开始按 1、2、3 顺序报数,报 m 者退出圈外,其余的人再从 1、2、3 开始报数,报 m 的人再退出圈外,依次类推。
请输出最后那个剩下的人的编号。
输入格式
输入一行包含 2 个整数 n,m。
注意:程序有多组输入数据,当输入为0时退出
输出格式
对于每组输入数据,输出对应的答案(每组数据中最后剩余的人的编号)用换行隔开
数据范围
所有测试点满足 1 ≤ n ≤ 300,m ≤ n。
输入样例:300 9
10 3
11 5
0 0
输出样例:34
4
8
循环链表数组标志位数组模拟链表循环链表实现代码:#include <iostream>
using namespace std;
typedef struct node
{
int data;
struct node *next;
} NODE, *Link;
int main() ...
数据结构再战—学生管理系统(链表)
学习思路
为了彻底掌握链表,我决定写一个用链表实现的学生管理系统,其中有链表的增删改查和显示菜单界面,当把这些链表常用的操作都练熟了之后再去对应的做一些题,就可以彻底掌握链表
代码:#include <iostream>
#include <cstring>
using namespace std;
#define NO_Value 20
#define NAME_Value 11
typedef struct Student
{
char studentNo[NO_Value];
char studentName[NAME_Value];
} st;
typedef struct node
{
struct Student data;
struct node *next;
} Node, *Link;
void myMenu() //菜单界面
{
cout << "============================ 欢迎来到学生管理系统 ============================" ...
数据结构再战—单链表
学习思路
所谓单链表实际上就是通过指针将多个不同不连续的节点链接起来,每个节点都存储着不同的值,很多人在学习的过程中容易搞混指针和节点之间的关系,实际上只要记住一点:没有被分配空间的指针就不能算是节点,
指针可以改变节点的指向,也可以改变节点的值,也可以通过循环在多个节点之间游走,但是它没有被 new 分配空间,那么就永远不是节点
给指针分配空间:
这是一个结构体指针
struct node *head;
给指针分配空间
head = new struct node;
创建另一个结构体指针
struct node *p;
另一个指针指向head所维护的那块内存
p = head;
当指针被分配空间后它就成为了一个节点,可以通过head->data = 1 的方式给节点赋值,也可以创建另一个指针指向这个节点,当另一个指针指向这个节点并不是指向这个head指针本身,而是指向head指针所分配的那块空间,
也可以理解为共同指向head指针所指向的节点
指针向后移动,p->next 代表当前节点所保存的下一个节点的地址,p = p->next 代表指针p移 ...