<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[GodCaptain的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/GodCaptain</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; GodCaptain]]></copyright><item><title><![CDATA[2025年跑步计划]]></title><link>https://blog.youkuaiyun.com/GodCaptain/article/details/146197903</link><guid>https://blog.youkuaiyun.com/GodCaptain/article/details/146197903</guid><author>GodCaptain</author><pubDate>Wed, 12 Mar 2025 10:17:56 +0800</pubDate><description><![CDATA[2025每周跑步计划表，看效果再微调！]]></description><category></category></item><item><title><![CDATA[现代C++_23种设计模式]]></title><link>https://blog.youkuaiyun.com/GodCaptain/article/details/143476504</link><guid>https://blog.youkuaiyun.com/GodCaptain/article/details/143476504</guid><author>GodCaptain</author><pubDate>Mon, 04 Nov 2024 10:18:43 +0800</pubDate><description><![CDATA[1. 单一职责原则（SRP）：一个类应该仅有一个引起它变化的原因；变化的方向隐含着类的责任。

2. 开放封闭原则（OCP）：对扩展开放，对更改封闭；类模块应该是可扩展的，但是不可修改。

3. 里氏替换原则（LSP）：子类必须能够替换它们的基类（IS - A）；继承表达类型抽象。

4. 接口隔离原则（ISP）：不应该强迫客户程序依赖它们不用的方法；接口应该小而完备。

5. 依赖倒置原则（DIP）：高层模块不应该依赖于低层模块，二者应该依赖于抽象]]></description><category></category></item><item><title><![CDATA[libcurl Windows编译]]></title><link>https://blog.youkuaiyun.com/GodCaptain/article/details/125728151</link><guid>https://blog.youkuaiyun.com/GodCaptain/article/details/125728151</guid><author>GodCaptain</author><pubDate>Mon, 11 Jul 2022 19:06:27 +0800</pubDate><description><![CDATA[Windows下版本]]></description><category></category></item><item><title><![CDATA[PCT通信协议]]></title><link>https://blog.youkuaiyun.com/GodCaptain/article/details/124937262</link><guid>https://blog.youkuaiyun.com/GodCaptain/article/details/124937262</guid><author>GodCaptain</author><pubDate>Mon, 23 May 2022 23:18:32 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[MFC/VC C++ 【xls文件/文本文件】读写与按条件删除]]></title><link>https://blog.youkuaiyun.com/GodCaptain/article/details/121424450</link><guid>https://blog.youkuaiyun.com/GodCaptain/article/details/121424450</guid><author>GodCaptain</author><pubDate>Fri, 19 Nov 2021 15:48:47 +0800</pubDate><description><![CDATA[MFC/VC C++ 【xls文件】读写与删除
一、必备知识：相关 类/API

类

CStdioFile
CFileFind
CFile
CFileStatus
CTime
CTimeSpan


函数

CTime::GetCurrentTime
CFile::Open
CFile::Write
CFileFind::FindFile
CFileFind::FindNextFile
CFileFind::IsDirectory
CFileFind::GetFilePath
    
WideCharT]]></description><category></category></item><item><title><![CDATA[STL容器综合应用案例1_电梯项目]]></title><link>https://blog.youkuaiyun.com/GodCaptain/article/details/113617564</link><guid>https://blog.youkuaiyun.com/GodCaptain/article/details/113617564</guid><author>GodCaptain</author><pubDate>Wed, 03 Feb 2021 19:08:17 +0800</pubDate><description><![CDATA[项目描述说明
1.目的： 获取进出电梯人数及姓名，并打印出来
2.思路：
​	1.抽象人员
​	2.抽象电梯（list）
​	3.进电梯的人（queue）
​	4.把进电梯和出电梯的人拷贝一份放入vector中，待打印
3.流程：
​	1.电梯上升
​	2.创建人员
​	3.判断进电梯条件，然后进电梯
​	4.判断出电梯条件，然后出电梯
​	5.打印出电梯和进电梯人员的人数和姓名
#define _CRT_SECURE_NO_WARNINGS
#include &lt;iostream&gt;
using ]]></description><category></category></item><item><title><![CDATA[STL原理]]></title><link>https://blog.youkuaiyun.com/GodCaptain/article/details/113266507</link><guid>https://blog.youkuaiyun.com/GodCaptain/article/details/113266507</guid><author>GodCaptain</author><pubDate>Wed, 27 Jan 2021 19:34:30 +0800</pubDate><description><![CDATA[#define _CRT_SECURE_NO_WARNINGS
#include &lt;iostream&gt;
using namespace std;
#include &lt;string&gt;

//容器
template &lt;class T&gt;
class MyArr
{
	int m_Capacity;
	int m_Size;
	T*t;
public:

	typedef T* iterator;

	MyArr()
	{
		m_Capacity = 10;
		m_Size ]]></description><category></category></item><item><title><![CDATA[用 VisualStudio 查看类结构模型]]></title><link>https://blog.youkuaiyun.com/GodCaptain/article/details/112780655</link><guid>https://blog.youkuaiyun.com/GodCaptain/article/details/112780655</guid><author>GodCaptain</author><pubDate>Mon, 18 Jan 2021 14:41:55 +0800</pubDate><description><![CDATA[1. 打开开发者命令工具
2. 输入如下命令

c:\Windows&gt;cd /d E:\UserData\Desktop\Code\C++\day6\查看类结构	//跳转目标文件目录

E:\UserData\Desktop\Code\C++\day6\查看类结构&gt;cl /d1reportSingleClassLayoutHero main.cpp	//输入命令
用于 x86 的 Microsoft (R) C/C++ 优化编译器 19.16.27043 版
版权所有(C) Microsoft.]]></description><category></category></item><item><title><![CDATA[数据结构与算法_C语言栈型应用案例_就近括号匹配]]></title><link>https://blog.youkuaiyun.com/GodCaptain/article/details/112424569</link><guid>https://blog.youkuaiyun.com/GodCaptain/article/details/112424569</guid><author>GodCaptain</author><pubDate>Sun, 10 Jan 2021 09:34:08 +0800</pubDate><description><![CDATA[#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "string.h"

/****************************************************
*		1	栈的应用案例 - 就近匹配						*
*		1.1	从第一个字符开始扫描						*
*		1.2	如果是左括号，入栈							*
*		1.3	如果是右括号								*
*		1.3.1	如果]]></description><category></category></item><item><title><![CDATA[数据结构与算法_C语言栈型数据案例]]></title><link>https://blog.youkuaiyun.com/GodCaptain/article/details/112394681</link><guid>https://blog.youkuaiyun.com/GodCaptain/article/details/112394681</guid><author>GodCaptain</author><pubDate>Sat, 09 Jan 2021 17:25:55 +0800</pubDate><description><![CDATA[#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "string.h"

/******************************项目说明*******************************
	栈
1	受限线性表
2	属于先进后出的数据结构
3	研究内容 ：入栈、出栈、栈顶、元素个数
4	顺序存储
	4.1	利用数组模拟出栈
	4.2	设计：利用数组尾地址 做栈顶，对入栈出栈方便
	]]></description><category></category></item><item><title><![CDATA[数据结构与算法_C语言链表案例]]></title><link>https://blog.youkuaiyun.com/GodCaptain/article/details/112391704</link><guid>https://blog.youkuaiyun.com/GodCaptain/article/details/112391704</guid><author>GodCaptain</author><pubDate>Sat, 09 Jan 2021 14:47:47 +0800</pubDate><description><![CDATA[#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "string.h"

//设计链表节点
typedef struct __LINKNODE
{
	void*data;
	struct __LINKNODE*next;
}LinkNode;

//设计链表管理结构体  由于多了m_Size  可以更方便管理节点
typedef struct __LINKLIST
{
	LinkNode*pHead]]></description><category></category></item><item><title><![CDATA[数据结构与算法_C语言动态数组案例]]></title><link>https://blog.youkuaiyun.com/GodCaptain/article/details/112373259</link><guid>https://blog.youkuaiyun.com/GodCaptain/article/details/112373259</guid><author>GodCaptain</author><pubDate>Fri, 08 Jan 2021 17:21:45 +0800</pubDate><description><![CDATA[#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "string.h"`在这里插入代码片`

typedef struct __DYNAMICARR
{
	void**m_data;
	int m_capacity;
	int m_size;
}DynamicArr;

//初始化动态数组
DynamicArr*init_DyArr(int capacity)
{
	DynamicArr*p = m]]></description><category></category></item><item><title><![CDATA[C语言精通大牛笔记DAY6|预处理|动态库|递归函数]]></title><link>https://blog.youkuaiyun.com/GodCaptain/article/details/112326878</link><guid>https://blog.youkuaiyun.com/GodCaptain/article/details/112326878</guid><author>GodCaptain</author><pubDate>Thu, 07 Jan 2021 18:12:52 +0800</pubDate><description><![CDATA[C语言精通大牛笔记DAY6|预处理|动态库|递归函数
一 . 预处理指令
1.预处理基本概念

C语言对源程序处理的四个步骤：预处理、编译、汇编、链接。

2.文件包含指令(#include)
a) 文件包含处理

“文件包含处理”是指一个源文件可以将另外一个文件的全部内容包含进来。Ｃ语言提供了#include命令用来实现“文件包含”的操作。

b) #incude&lt;&gt;和#include""区别


“” 表示系统先在file1.c所在的当前目录找file1.h，如果找不到，再按系统指定的目录检]]></description><category></category></item><item><title><![CDATA[C语言精通大牛笔记DAY5_链表与回调函数]]></title><link>https://blog.youkuaiyun.com/GodCaptain/article/details/112270388</link><guid>https://blog.youkuaiyun.com/GodCaptain/article/details/112270388</guid><author>GodCaptain</author><pubDate>Wed, 06 Jan 2021 14:13:40 +0800</pubDate><description><![CDATA[C语言精通大牛笔记DAY5_链表与回调函数
1.链表
1.链表要素

链表由节点构成
每个节点由数据域和指针域组成

2.数组与链表比较

3.链表的分类
链表分类1:

静态链表	链表分配在栈上
动态链表    链表分配在堆区

链表分类2:

单向链表
双向链表

链表分类3:

单向循环链表
双向循环链表

4.带头节点的链表

5.链表完整功能示例
#include "NodeList.h"
//初始化链表
NodeList* init_NodeList()
{
	NodeList*pHeader ]]></description><category></category></item><item><title><![CDATA[C语言精通大牛笔记DAY4_结构体内存对齐]]></title><link>https://blog.youkuaiyun.com/GodCaptain/article/details/112176306</link><guid>https://blog.youkuaiyun.com/GodCaptain/article/details/112176306</guid><author>GodCaptain</author><pubDate>Mon, 04 Jan 2021 14:26:09 +0800</pubDate><description><![CDATA[C语言精通大牛笔记DAY4_结构体内存对齐
1.内存对齐
内存对齐好处

以空间换时间

结构体对齐原则

第一个属性开始 , 从0开始计算偏移量
第二个属性要放在 该属性的大小 与 对齐模数比 取小的值的整数倍上
当所有属性都计算完毕后 , 整体做二次偏移 , 将计算结果  扩充到  [结构体中最大类型 与 对齐模数]取最小值 的整数倍

查看对齐模数

#pragma pack (show)				编译后可看到对齐模数
默认对齐模数  为 8

修改对齐模数

#pragma pack (1)					]]></description><category></category></item><item><title><![CDATA[C语言精通大牛笔记DAY3_数组指针与选择排序]]></title><link>https://blog.youkuaiyun.com/GodCaptain/article/details/112024519</link><guid>https://blog.youkuaiyun.com/GodCaptain/article/details/112024519</guid><author>GodCaptain</author><pubDate>Thu, 31 Dec 2020 16:22:45 +0800</pubDate><description><![CDATA[C语言精通大牛笔记DAY3_数组指针与选择排序
1.数组指针

定义方式

int arr[5] = {1,2,3,4,5};
//先定义数组类型,再通过类型定义出数组指针
typedef int(ARRAY_TYPE1)[5];//有5个int元素的数组    类型
ARRAY_TYPE1*p1 = &amp;arr;
//先定义出数组指针的类型,通过类型创建数组指针变量
typedef int(*ARRAY_TYPE2)[5];
ARRAY_TYPE2 p2 = &amp;arr;
for(int i ]]></description><category></category></item><item><title><![CDATA[结构体二级指针案例]]></title><link>https://blog.youkuaiyun.com/GodCaptain/article/details/112021969</link><guid>https://blog.youkuaiyun.com/GodCaptain/article/details/112021969</guid><author>GodCaptain</author><pubDate>Thu, 31 Dec 2020 16:10:56 +0800</pubDate><description><![CDATA[#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "string.h"

typedef struct _Teacher
{
	char*name;
	char**student;	//创建学生数组
}Teacher;

void allocateTeacherSpace(Teacher***tArr,int num)
{
	Teacher**TeacherArr = malloc(sizeof(T]]></description><category></category></item><item><title><![CDATA[C语言精通大牛笔记DAY2_开辟内存与sscanf从字符串获取数据]]></title><link>https://blog.youkuaiyun.com/GodCaptain/article/details/111941236</link><guid>https://blog.youkuaiyun.com/GodCaptain/article/details/111941236</guid><author>GodCaptain</author><pubDate>Wed, 30 Dec 2020 08:51:02 +0800</pubDate><description><![CDATA[C语言精通大牛笔记DAY2
1.堆区开辟内存其它函数
a. calloc
#include &lt;stdlib.h&gt;
void * calloc(size_t nmemb, size_t size);

功能：

在内存动态存储区中分配nmemb块长度为size字节的连续区域。calloc自动将分配的内存 置0。

参数：


nmemb：所需内存单元数量


size：每个内存单元的大小（单位：字节）


返回值：


成功：分配空间的起始地址


失败：NULL


b. realloc
#in]]></description><category></category></item><item><title><![CDATA[位运算]]></title><link>https://blog.youkuaiyun.com/GodCaptain/article/details/111941184</link><guid>https://blog.youkuaiyun.com/GodCaptain/article/details/111941184</guid><author>GodCaptain</author><pubDate>Wed, 30 Dec 2020 08:46:03 +0800</pubDate><description><![CDATA[位运算
1.按位取反 ~
int a = 2;						//0000 0000 0000 0000 0000 0000 0000 0010
printf("~a = :%d\n",~a);		//1111 1111 1111 1111 1111 1111 1111 1101  打印输出时  会转换储存码(计算机认为默认保存的为反码)
								//转换为1000 0000 0000 0000 0000 0000 0000 0010 + 1  打印输出

2.按位与 &amp;

同真为真 其余为假
]]></description><category></category></item><item><title><![CDATA[C语言高级编程练习题--多级指针文件操作]]></title><link>https://blog.youkuaiyun.com/GodCaptain/article/details/111934668</link><guid>https://blog.youkuaiyun.com/GodCaptain/article/details/111934668</guid><author>GodCaptain</author><pubDate>Tue, 29 Dec 2020 18:22:43 +0800</pubDate><description><![CDATA[#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "string.h"

void writeFile()
{
	FILE*pFile = fopen("./test.txt", "w");
	char buf[5][128] = { "abcdefg\n","hijklmn\n","opq\n","rst\n","uvwxyz\n" };
	for (int i = 0; i &lt; 5; i+]]></description><category></category></item></channel></rss>