<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Peealy的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Peealy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Peealy]]></copyright><item><title><![CDATA[expected identifier or ‘(’ before ‘***’]]></title><link>https://blog.youkuaiyun.com/Peealy/article/details/122292147</link><guid>https://blog.youkuaiyun.com/Peealy/article/details/122292147</guid><author>Peealy</author><pubDate>Mon, 03 Jan 2022 20:39:08 +0800</pubDate><description><![CDATA[问题描述：
产生这个报错的原因是因为我在定义全局变量之后在全局区就用for循环进行初始化，而for循环只能在函数中被调用所以产生了错误，解决方法：把初始化放进main函数中
@Override
struct THREAD
{
      int cfd;
      pthread_t tid;
      struct sockaddr_in client;
 };

//定义全局变量
struct THREAD thread[100]; //结构体数组
int k;

for(k = 0; k &lt;]]></description><category></category></item><item><title><![CDATA[广度优先搜索和深度优先搜索]]></title><link>https://blog.youkuaiyun.com/Peealy/article/details/121465710</link><guid>https://blog.youkuaiyun.com/Peealy/article/details/121465710</guid><author>Peealy</author><pubDate>Mon, 22 Nov 2021 10:21:51 +0800</pubDate><description><![CDATA[文章目录1. 前言2. 广度优先搜索和深度优先搜索1）深度优先搜索2）广度优先搜索3. 深度优先搜索算法框架1）二叉树深度优先搜索模板2）图深度优先搜索模板3）二维矩阵深度优先搜索模板4. 广度优先搜索算法框架1）单源广度优先搜索2）多源广度优先搜索3）双向广度优先搜索

1. 前言
    深度优先搜索算法的基础是递归，如果你对递归还不熟悉的话，建议先去看看递归的概念，做一些递归的练习题，也可以看我之前写的递归的文章：递归算法详解

2. 广度优先搜索和深度优先搜索
     在这篇文章中同时总结下广度优]]></description><category></category></item><item><title><![CDATA[回溯算法及解题模板]]></title><link>https://blog.youkuaiyun.com/Peealy/article/details/121435671</link><guid>https://blog.youkuaiyun.com/Peealy/article/details/121435671</guid><author>Peealy</author><pubDate>Sat, 20 Nov 2021 11:06:08 +0800</pubDate><description><![CDATA[文章目录1. 什么是回溯算法？2. 回溯算法的框架3. 针对不同题型的解题模板1.所给数组中的元素互不相同，结果包含所有元素总结

1. 什么是回溯算法？
    回溯算法其实是一种穷举的搜索方法，利用回溯解决问题就是在穷举所有的可能，然后找到我们想要的答案。使用回溯算法时需要考虑如下的三个问题：
    (1)  可选列表：所有可作出的选择；
    (2)  已选列表：也就是之前已经做出的选择；
    (3)  结束条件：当已选列表满足题目条件，可以结束穷举；

2. 回溯算法的框架
vector&l]]></description><category></category></item><item><title><![CDATA[递归算法详解]]></title><link>https://blog.youkuaiyun.com/Peealy/article/details/121331492</link><guid>https://blog.youkuaiyun.com/Peealy/article/details/121331492</guid><author>Peealy</author><pubDate>Mon, 15 Nov 2021 11:50:31 +0800</pubDate><description><![CDATA[本篇博客的主要内容如下1. 什么是递归2. 递归三要素3. 递归的优缺点4. 递归的优化
1. 什么是递归
    相信很多人开始学算法，第一个接触的就是递归，为什么要先学递归呢？这是因为递归是其他算法的基础，像深度优先搜索、分治算法、回溯算法都是在递归的基础上做出一些改进。那到底什么是递归呢？递归 = 递进 + 回归，递进的意思是把复杂的问题逐步的拆解成和原问题类似的子问题，直到我们一眼就能看出子问题的答案为止（也就是递归终止条件）；而回归和递进正好相反，当我们求解了最简子问题后，我们就能求解上一层的子问]]></description><category></category></item><item><title><![CDATA[分治算法详解]]></title><link>https://blog.youkuaiyun.com/Peealy/article/details/121245565</link><guid>https://blog.youkuaiyun.com/Peealy/article/details/121245565</guid><author>Peealy</author><pubDate>Wed, 10 Nov 2021 12:23:15 +0800</pubDate><description><![CDATA[本篇博客的主要内容如下1. 什么是分治算法2. 分治算法的解题步骤3. 分治算法的例题
1. 什么是分治算法
    分治就是 “分而治之”，其本质就是将原问题分解成规模更小的子问题，然后将子问题求解的结果合并成原问题的答案。其实有很多算法本质上都是这个思想，比如说动态规划通过状态转移方程从子问题的最优解推导出全局的最优解，又比如说递归通过递推关系式将问题不断分解成和原问题相似但是规模更小的子问题。
2. 分治算法的解题步骤
分治的核心思想就是：分解+合并：
     分解：将原问题(大问题)分解成和原问题]]></description><category></category></item><item><title><![CDATA[const常量、const指针、指向const常量的指针和指向常量的const指针的区别]]></title><link>https://blog.youkuaiyun.com/Peealy/article/details/118438725</link><guid>https://blog.youkuaiyun.com/Peealy/article/details/118438725</guid><author>Peealy</author><pubDate>Sat, 03 Jul 2021 13:41:51 +0800</pubDate><description><![CDATA[1. const常量
变量可以通过const关键字定义为常量，并且常量定义的时候必须为其赋值初值，一旦定义为常量后其值就不能更改，定义格式：const type var_name = 初始值；
 const  int num = 10; // 必须在定义的时候就初始化，后续不能再进行初始化
 num = 11; //错误，常量的值不能更改
 int  num2 = num; // 可以执行，这里是将num的值赋值给其他变量，并没有修改num的值

2. const指针
将指针定义为不可变，其所指向的地址一旦]]></description><category></category></item><item><title><![CDATA[C++用ofstream先写入文件再用ifstream读取文件，数据读取失败]]></title><link>https://blog.youkuaiyun.com/Peealy/article/details/116980322</link><guid>https://blog.youkuaiyun.com/Peealy/article/details/116980322</guid><author>Peealy</author><pubDate>Tue, 18 May 2021 11:15:01 +0800</pubDate><description><![CDATA[先上代码：
#include&lt;string&gt;
#include&lt;iostream&gt;
#include&lt;fstream&gt;
using namespace std;

int main() {
	string sarr[] = {"this","study","unable","to","open","the","necessary","the","end","unable","this","open"};
	int str_size = sizeof(sarr) / siz]]></description><category></category></item><item><title><![CDATA[使用copy函复制vector对象，将vector作为函数参数时发生 Debug Assertion Failed 错误]]></title><link>https://blog.youkuaiyun.com/Peealy/article/details/116924792</link><guid>https://blog.youkuaiyun.com/Peealy/article/details/116924792</guid><author>Peealy</author><pubDate>Mon, 17 May 2021 12:13:42 +0800</pubDate><description><![CDATA[先来看一下代码：
#include&lt;vector&gt;
using namespace std;

int main() {
	const int elem_size = 8;
	int ia[elem_size] = { 12,8,43,0,6,21,10,7 };
	vector&lt;int&gt; ivec(ia, ia + elem_size);
	vector&lt;int&gt; ivec2;
	copy(ivec.begin(), ivec.end(), ivec2.begin())]]></description><category></category></item><item><title><![CDATA[一文看懂哈希表并学会使用C++ STL 中的哈希表]]></title><link>https://blog.youkuaiyun.com/Peealy/article/details/116895964</link><guid>https://blog.youkuaiyun.com/Peealy/article/details/116895964</guid><author>Peealy</author><pubDate>Mon, 17 May 2021 11:22:49 +0800</pubDate><description><![CDATA[    最近在刷题以及做编程练习的作业时经常会用到哈希表，碰到一些想用的函数时每次都看别人的博客，现结合别人的博客对哈希表做个总结。
本篇哈希表的作用如何使用STL库中的哈希表STL中哈希表的常用函数
哈希表的作用
如何使用STL库中的哈希表
STL中哈希表的常用函数

...]]></description><category></category></item><item><title><![CDATA[关于vector在类中声明出错的情况]]></title><link>https://blog.youkuaiyun.com/Peealy/article/details/116243260</link><guid>https://blog.youkuaiyun.com/Peealy/article/details/116243260</guid><author>Peealy</author><pubDate>Wed, 28 Apr 2021 21:08:55 +0800</pubDate><description><![CDATA[文章转载自：https://blog.youkuaiyun.com/biechusheng231/article/details/80034126
当我们在类声明文件(类.h)中定义了一个vector变量时，如果直接在其后对其初始化：
class A{
public:
     A();
     ~A();
private:
    vector&lt;int&gt; nums(10); //出错，不能直接调用vector的析构函数赋值
};

原因是在类声明.h 文件中不能直接调用vector类的析构函数赋值，应先]]></description><category></category></item><item><title><![CDATA[类中定义static变量后，visual studio编译时提示LNK2001“无法解析的外部符号”]]></title><link>https://blog.youkuaiyun.com/Peealy/article/details/116243182</link><guid>https://blog.youkuaiyun.com/Peealy/article/details/116243182</guid><author>Peealy</author><pubDate>Wed, 28 Apr 2021 20:59:23 +0800</pubDate><description><![CDATA[编译结果如下：

原因：当我们在定义的类内要使用自己所定义的静态变量时，由于我们类内定义该静态变量时未对其进行初始化，因此要解决这个问题，要在类外的使用class scope(::)对它进行初始化
解决方法：
Class A{
static int var;
}
int A::var = 0; //对静态变量初始化```



...]]></description><category></category></item><item><title><![CDATA[二维数组作为函数的参数和返回值]]></title><link>https://blog.youkuaiyun.com/Peealy/article/details/116242473</link><guid>https://blog.youkuaiyun.com/Peealy/article/details/116242473</guid><author>Peealy</author><pubDate>Wed, 28 Apr 2021 20:56:35 +0800</pubDate><description><![CDATA[1. 二维数组作为函数的参数
 （1）错误的做法：将二维数组传递给二维指针
//实参是二维数组，形参是int**，这样做的话编译器会报错
int main() {
       int arr[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 };
       int row = sizeof(arr) / sizeof(arr[0]); //行数
       int column = sizeof(arr[0]) / sizeof(arr[0][0]); //列数
      ]]></description><category></category></item><item><title><![CDATA[输出指向字符/字符串数组的指针变量输出乱码的情况]]></title><link>https://blog.youkuaiyun.com/Peealy/article/details/116084616</link><guid>https://blog.youkuaiyun.com/Peealy/article/details/116084616</guid><author>Peealy</author><pubDate>Sat, 24 Apr 2021 11:21:07 +0800</pubDate><description><![CDATA[首先来看一下以下几种情况：
    char c = 'M';
    char s1[] = { 'M','o','n','d','a','y' };
    char s2[] = "Monday";
    int num[] = { 1,2,3 };
    char* cpt = &amp;c;
    char* spt1 = s1;
    char* spt2 = s2;
    int* numpt = num;
    cout &lt;&lt; cpt &lt;&lt; endl;
 ]]></description><category></category></item><item><title><![CDATA[C++实现先序创建二叉树，并用递归和非递归两种方式二叉树中序遍历]]></title><link>https://blog.youkuaiyun.com/Peealy/article/details/115835700</link><guid>https://blog.youkuaiyun.com/Peealy/article/details/115835700</guid><author>Peealy</author><pubDate>Sun, 18 Apr 2021 17:14:45 +0800</pubDate><description><![CDATA[C++实现先序创建二叉树，并用递归和非递归两种方式二叉树中序遍历
这是数据结构课堂留下的一个作业：
    题目是：按先序次序输入二叉树中的结点的值（data为字符类型），以’#'表示空字符，创建二叉链表示二叉树。函数原型如下：
    void CreateBiTree(BiTree *T)；//创建二叉树函数
    void InOrderTraverse(BiTree T);  //利用栈以非递归的方式实现中序遍历上述二叉树
二叉链表的定义如下：
typedef struct BiTNode{
	c]]></description><category></category></item></channel></rss>