hexo Butterfly主题vercel页面404:NOT_FOUND
问题描述在使用 Hexo 搭建博客时,在博客中打开文章显示如下图示: 原因:因文件名称中带有 + 符号vercel部署无法定位到文件的位置,导致URL定位出现问题。 解决方法一个篇文章上传分为:(1)文件名称,即如下: (2)文章名称: 即修改文件名称,把c++基础修改为其他名称,再进行上传部署即可完成。
hexo Butterfly主题busuanzi无法统计访客量
问题描述在使用 Hexo 搭建博客时,在博客中集成了站点访问数据量统计插件 busuanzi。在本地启动服务后,统计数据无法加载。 问题分析静态网站是无后台服务支撑的,大多数情况下都需要借助第三方的插件实现相关功能。 具体的原因博主也没有弄清楚。猜测是在本地部署时,未检测到busuanzi插件,或是博客主题(butterfly)中安装新的插件导致无法检测busuanzi插件 解决方法修改主体下的D:\blog\butt\node_modules\hexo-theme-butterfly\ _config.yml(我的目录:D:\blog\butt\ _config.butterfly.yml,可以将主题下的配置文件复制粘贴到根目录下改名为 _config.butterfly.yml),搜索inject,新增如下参数: 1- <script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script> 预览效果开启本地server 1h...
hexo Butterfly主题本地搜索功能
安装依赖前往博客根目录,打开cmd命令窗口执行 1npm install hexo-generator-search --save 注入配置 修改站点配置文件_config.yml,添加代码如下: 123456search: path: search.xml field: post content: true format: html limit: 10000 修改主题配置文件修改主体下的D:\blog\butt\node_modules\hexo-theme-butterfly\ _config.yml(我的目录:D:\blog\butt\ _config.butterfly.yml,可以将主题下的配置文件复制粘贴到根目录下改名为 _config.butterfly.yml),搜索search,修改为如下参数 12345678910111213141516171819202122232425search: # 选择:algolia_search / local_search / docsearch # 如果不需要搜索功能,保持为空 use: local_s...
面相对象-继承
继承概念继承是一种面向对象编程的重要概念,它允许一个类(称为派生类,父类)继承另一个类(称为基类,子类)的特性和行为。 1234class B : 继承方式 A//A类为父类,B类为子类{ }; 继承方式: 公有继承(public) 私有继承(private) 保护继承(protected) 继承的特点:通过继承,派生类可以获得基类的成员变量和成员函数,并且可以添加自己的新成员变量和成员函数。这样可以实现代码的复用和扩展 继承使用场景:当多个类之间有相同的属性和方法时,可以将这些共同的部分抽取出来,放在一个基类中,然后其他类通过继承基类来复用这些代码。 继承方式权限修饰符及其作用范围权限修饰符:用来限制类中的成员(成员变量、成员方法…)能够被访问的范围。 修饰符 本类里 子孙类 外部类 public √ √ √ protected √ √ private √ 三种继承方式(1)公有继承(public)(2)保护继承(protected)(3)私有继承(private) 1234567891011121314151617181...
c++中关于void函数是否要使用return
在学习c中我是习惯于在void函数里增加return,在学习c++时,看到很多老师在定义类的时,类中的void函数不进行添加return,故而引发思考,是否增加return和不增加return有什么区别? 函数末尾的return;123456789void ethan1() { // 一些代码 return; // 显式返回}void ethan2() { // 一些代码 // 隐式返回(没有return语句)} 在函数末尾时,两者完全等价。编译器会在 void 函数的末尾自动插入一个隐式的 return; 提前返回的情况12345678void ethan1(int value) { if(value > 0) { return;//必须写,用于提前退出 } //正常处理代码 //函数末尾可以省略return} 当需要提前退出函数时,必须使用 return; 总结:根据以上两个案例,在函数的尾部有没有return;都是一...
面相对象-封装
类和对象的关系类和对象类(设计图):是对象共同特征的描述;对象(实例):是真实客观存在的东西。在C++中,必须先设计类,才能获得对象。 如何设计类12345class 类名{ //1、成员变量(代表属性,一般是名词) //2、成员函数(代表行为,一般是动词)}; (1)如何设计手机属性:品牌,价格;功能:打电话,收短信; 1234567struct Phone//结构体默认的成员变量和成员函数是公开的{ string brand; double price; void call(){} void sendMessage(){}}; 12345678class Phone//类的默认的成员变量和成员函数是私有的{ public: string brand; double price; void call(){} void sendMessage(){}}; 创建并使用对象类...
C++基础
C与C++区别 C C++ 语法 过程化的编程语言 具有面向对象范式的编程语言 编程风格 注重过程化的编程风格,主要关注算法和函数的设计 支持面向对象的编程风格,可以使用类、对象和封装等概念进行程序设计 标准库 C标准库相对简单,提供了基本的输入输出、字符串处理等功能 C++标准库比C标准库更加丰富和功能强大,包含了大量的容器、算法和其他常用的功能模块 异常处理 没有内置的异常处理机制,通常使用返回错误码的方式来处理错误 C++支持异常处理机制,可以捕获和处理程序中的异常情况 兼容性 C++是C的超集,也就是说,任何一个符合C语法规则的程序也是一个合法的C++程序。C++可以调用C语言编写的函数,并且可以与C语言的代码共享。 选择 C++相对于C来说更加强大和灵活,适用于更复杂的应用场景。但对于一些简单的、性能要求较高的程序,C语言可能更加适合。选择使用哪种语言,取决于具体的需求和编程的目标。 “helloworld”的编写步骤: .vscode文件夹 launch.json 1234567891011121314151617181920...
代码规范
编码规范1、程序开发流程 (1)需求分析 (2)功能设计 (3)编写代码 (4)单元测试 (5)功能测试 (6)代码REVIEW2、公司开发,一般会有公司的开发规范。3、代码风格要有助于其他程序员易于理解。 宏观上高质量编码规范1、版本和版权的声明2、头文件结构 (1)版本和版权的声明 (2)预处理部分 (3)函数或者结构体声明头文件使用注意事项(1)为了防止头文件被重复引用,在代码中使用: #ifndef、#ifdef、#define、#endif(2)引用标准头文件: #include<标准头文件名.h>(3)引用非标准头文件: #include “非标准头文件名.h”(4)头文件中只存放”声明”,不存放”定义” 12345void pr();//这是声明void pr(){//这是定义,实现 函数体} (5)多个c文件合并生成.out/.exe可执行文件的过程 方法一 把定义部分.c文件单独编译成.o文件 gcc 1.c -c 再把包含main函数的源文件也单独编译成.o文件 gcc 2.c -c 最后把多个.o文件链接...
链表
链表与数组对比 对比项 链表 数组 查找 慢 快 修改 慢 快 插入 快 慢 删除 快 慢 创建链表123456789101112131415161718192021222324252627282930313233343536#include <stdio.h>#include <stdlib.h>typedef struct st_node{ int score; //数据域 struct st_node *next; //指针域} Node,*Linklist;Node *creat_linklist()//创建链表头节点{ Node *header = (Node *)malloc(sizeof(Node)); if (NULL == header) { printf("内存分配失败!"); return NULL; } header->next = NULL; retur...
编译预处理
编译预处理是源代码在真正被全部gcc编译之前,编译器就要事先做的工作 宏定义C提供了一种可以替换源代码中的字符串的机制 语法:#define 宏名(参数表) 宏值 不带参数宏定义1234#define PI 3.1415926#define SIDE 10#define AREA SIDE*SIDE#define PR printf("ethaniel\n"); 带参数的宏定义12#define MIX(a) (a) * (a)#define MAX(a,b) a>b?a:b 文本包含文件目录:header.h 12345678910111213141516171819#ifndef HEADER_H#define HEADER_H#include <stdio.h>void pr();//函数声明/* 使用特定的.h头文件,完成所有相关内容的声明 1、宏定义 2、其他常用头文件的包含 3、结构体、共用体(联合体)、枚举类型的定义 4、外部函数的声明 5、全局变量声明 6、typedef声明*//...










