<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[呼的一声飞得好远好远]]></title><description><![CDATA[恩]]></description><link>https://blog.youkuaiyun.com/qq_36767247</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_36767247]]></copyright><item><title><![CDATA[设计模式：单例模式]]></title><link>https://blog.youkuaiyun.com/qq_36767247/article/details/82390764</link><guid>https://blog.youkuaiyun.com/qq_36767247/article/details/82390764</guid><author>qq_36767247</author><pubDate>Tue, 04 Sep 2018 21:35:46 +0800</pubDate><description><![CDATA[概念:在一个进程中一个类只能实例化出一个对象的设计模式

懒汉式：在你真正用到的时候才去创建这个单例对象

饿汉式：不管你用不用的上，在你创建这个类的时候就直接创建对象


#include&amp;lt;stdio.h&amp;gt;
#include&amp;lt;iostream&amp;gt;
#include&amp;lt;thread&amp;gt;
#include&amp;lt;mutex&amp;gt;
using namespace std...]]></description><category></category></item><item><title><![CDATA[python--优快云爬虫]]></title><link>https://blog.youkuaiyun.com/qq_36767247/article/details/82313660</link><guid>https://blog.youkuaiyun.com/qq_36767247/article/details/82313660</guid><author>qq_36767247</author><pubDate>Sun, 02 Sep 2018 10:58:13 +0800</pubDate><description><![CDATA[ 




# encoding:utf-8
__author__ = 'Sun'

import re
import urllib.request
import urllib
import queue
import threading
import os


queue = queue.Queue()
visited = set()
cnt = 0
class CsdnBlogSpider(th...]]></description><category></category></item><item><title><![CDATA[C语言大纲]]></title><link>https://blog.youkuaiyun.com/qq_36767247/article/details/81904031</link><guid>https://blog.youkuaiyun.com/qq_36767247/article/details/81904031</guid><author>qq_36767247</author><pubDate>Tue, 21 Aug 2018 11:04:43 +0800</pubDate><description><![CDATA[C语言大纲

]]></description><category></category></item><item><title><![CDATA[智能指针——auto_ptr]]></title><link>https://blog.youkuaiyun.com/qq_36767247/article/details/81875131</link><guid>https://blog.youkuaiyun.com/qq_36767247/article/details/81875131</guid><author>qq_36767247</author><pubDate>Mon, 20 Aug 2018 17:46:03 +0800</pubDate><description><![CDATA[智能指针：自动的管理指针所指向动态资源的释放 
首先我们先来看一下这个最古老的智能指针auto_ptr 
但是他存在管理权转移的问题 
这是一个最基本的auto_ptr

template &amp;lt;class T&amp;gt;
class Autu_ptr
{
public:
    Autu_ptr(T *ptr)
    :_ptr(ptr)
    {}

    //拷贝构造
    //管理权...]]></description><category></category></item><item><title><![CDATA[智能指针——shared_ptr&weak_ptr]]></title><link>https://blog.youkuaiyun.com/qq_36767247/article/details/81874442</link><guid>https://blog.youkuaiyun.com/qq_36767247/article/details/81874442</guid><author>qq_36767247</author><pubDate>Mon, 20 Aug 2018 17:13:45 +0800</pubDate><description><![CDATA[一个带有定制删除器的shared_ptr，因为有些指针比如说文件中指针，我们在释放文件指针的时候不能简单的使用free直接将文件指针释放掉，此时我们就应该传入一个仿函数，在我们传入文件指针的时候，调用这个仿函数来释放这个指针即可，不同的指针定制不同的释放函数这是我们的思想

template &amp;lt;class T&amp;gt;
struct Delete
{
    void operator()(T...]]></description><category></category></item><item><title><![CDATA[排序算法的比较]]></title><link>https://blog.youkuaiyun.com/qq_36767247/article/details/81744034</link><guid>https://blog.youkuaiyun.com/qq_36767247/article/details/81744034</guid><author>qq_36767247</author><pubDate>Thu, 16 Aug 2018 16:19:44 +0800</pubDate><description><![CDATA[1.冒泡排序（时间复杂度O(n^2)，空间复杂度O(1)，不稳定排序） 
首先定义一个变量size_t bount=0  
[0，bound）的区间已经排好序的区间，[bound,size)待排序的区间 
从第二个数字开始，每一个数字都会和前一个数字进行比较，如符合则交换

void BubbleSort(int array[],size_t size)
{
     if (size == ...]]></description><category></category></item><item><title><![CDATA[TCP协议-滑动窗口]]></title><link>https://blog.youkuaiyun.com/qq_36767247/article/details/81675543</link><guid>https://blog.youkuaiyun.com/qq_36767247/article/details/81675543</guid><author>qq_36767247</author><pubDate>Tue, 14 Aug 2018 22:06:17 +0800</pubDate><description><![CDATA[滑动窗口的出现是因为我们我们得确人确认应答机制致使数据的传输效率比较低下，所以们就引入了滑动窗口

 

首先滑动窗口的大小是我们无需等待ack确认应答即可直接发送的数据最大值

比如说此图



 

我们首先将4000字节的数据全部发送给对端，在我们发送数据的同时，对端也会给我们发送ack，一旦我们接收到了0-1000数据的ack（下一条数据时1001），那么我们的窗口就会往后移动，就是这样的...]]></description><category></category></item><item><title><![CDATA[TCP协议]]></title><link>https://blog.youkuaiyun.com/qq_36767247/article/details/81668887</link><guid>https://blog.youkuaiyun.com/qq_36767247/article/details/81668887</guid><author>qq_36767247</author><pubDate>Tue, 14 Aug 2018 16:06:02 +0800</pubDate><description><![CDATA[TCP的三次握手四次挥手

 

三次握手：建立连接（保证连接建立的可靠性）

 



四次挥手：解除连接



 

三次握手连接四次挥手断开连接



 

理解ESTABLISHED：进入此状态下即可发送数据

理解TIME_WAIT状态：进入TIME_WAIT并不会马上将我们刚开始绑定的端口号释放而是在两个MSL之后在会将这个端口号释放掉，那么为什么是两个MSL（MSL是TCP报文的最大...]]></description><category></category></item><item><title><![CDATA[网络基础（二）]]></title><link>https://blog.youkuaiyun.com/qq_36767247/article/details/81583729</link><guid>https://blog.youkuaiyun.com/qq_36767247/article/details/81583729</guid><author>qq_36767247</author><pubDate>Sat, 11 Aug 2018 10:15:28 +0800</pubDate><description><![CDATA[应用层（重要写代码）

 

协议：是双方的一种约定



 

 

报头：

HTTP协议(超文本传输协议)

 

URL：通俗来说网址

 



 

urlencode:特殊字符的编码

urldecode:编码之后的解码

 

 

http抓包



 

 

http常见Header：


	Cookie：保存身份标识，避免重复登录，存字符串，保存数据有限（4K）
	
	
	...]]></description><category></category></item><item><title><![CDATA[网络基础（一）]]></title><link>https://blog.youkuaiyun.com/qq_36767247/article/details/81583673</link><guid>https://blog.youkuaiyun.com/qq_36767247/article/details/81583673</guid><author>qq_36767247</author><pubDate>Sat, 11 Aug 2018 10:09:14 +0800</pubDate><description><![CDATA[广域网和局域网

局域网LAN：计算机多了，通过交换机和路由器连在一起



 

广域网：将远隔千里的计算机都连在一起



广域网和局域网只是一个相对的概念

 

协议

协议：是一种约定

协议分层：是为了封装协议，即我们在使用其它层的东西时不用关注其他层的技术细节

协议可自定制

 

网络协议

协议分层

OSI协议（七层模型）：层级过多太复杂，所以我们一般会使用TCP/IP协议（...]]></description><category></category></item><item><title><![CDATA[网络编程套接字（socket）]]></title><link>https://blog.youkuaiyun.com/qq_36767247/article/details/81583612</link><guid>https://blog.youkuaiyun.com/qq_36767247/article/details/81583612</guid><author>qq_36767247</author><pubDate>Sat, 11 Aug 2018 10:03:06 +0800</pubDate><description><![CDATA[网络编程基础知识

IP地址（网络层）：即网络中的门牌号，用点分十进制表示（默认IPV4）

 

端口号（传输层协议）


	一个2字节16位的整数
	
	
	用来标识一个进程
	
	
	IP地址+端口号可以标识一个唯一的进程
	
	
	一个端口号只能被一个进程占用
	
 

 

端口号和进程PID的区别？

端口号是在网络传输的方面对进程的标识

进程ID是在操作系统上对它的一个唯一的标识
...]]></description><category></category></item><item><title><![CDATA[字符串函数的模拟实现]]></title><link>https://blog.youkuaiyun.com/qq_36767247/article/details/81317264</link><guid>https://blog.youkuaiyun.com/qq_36767247/article/details/81317264</guid><author>qq_36767247</author><pubDate>Tue, 31 Jul 2018 17:25:17 +0800</pubDate><description><![CDATA[
//strlen
//1.
size_t my_strlen(char *str)
{
	if (*str == '\0')
	{
		return 0;
	}
	return 1 + my_strlen(str+1);
}

//2.
//int my_strlen(char *str)
//{
//	char *p = str;
//	while (*p != '\0');
//	{
//	...]]></description><category></category></item><item><title><![CDATA[关于指针的一些计算]]></title><link>https://blog.youkuaiyun.com/qq_36767247/article/details/81305055</link><guid>https://blog.youkuaiyun.com/qq_36767247/article/details/81305055</guid><author>qq_36767247</author><pubDate>Tue, 31 Jul 2018 15:55:38 +0800</pubDate><description><![CDATA[
int main()
{
	//int a[5] = { 1, 2, 3, 4, 5 };
	//int *ptr = (int *)(&amp;amp;a + 1);
	//printf(&quot;%d,%d&quot;, *(a + 1), *(ptr - 1));//2 5


	/*int a[4] = { 1, 2, 3, 4 };
	int *ptr1 = (int *)(&amp;amp;a + 1);
	int ...]]></description><category></category></item><item><title><![CDATA[测试客户端]]></title><link>https://blog.youkuaiyun.com/qq_36767247/article/details/81272368</link><guid>https://blog.youkuaiyun.com/qq_36767247/article/details/81272368</guid><author>qq_36767247</author><pubDate>Sun, 29 Jul 2018 16:23:47 +0800</pubDate><description><![CDATA[项目要求

目的

自己模拟一个curl函数，但是curl命令是自己构造一个HTTP请求发送给我们的目标服务器，而我们是自己构造一个HTTP请求发送给我们的命令行参数第二个参数（url），然后再从服务器端接受响应打印到标准输出

 

我们的执行命令是


./client https://www.baidu.com/

 

程序开始执行之后根据提示从标准输入中一行一行的读取字符串然后去构造HT...]]></description><category></category></item><item><title><![CDATA[笔试必考：关于数组的一些计算]]></title><link>https://blog.youkuaiyun.com/qq_36767247/article/details/81237691</link><guid>https://blog.youkuaiyun.com/qq_36767247/article/details/81237691</guid><author>qq_36767247</author><pubDate>Fri, 27 Jul 2018 15:08:13 +0800</pubDate><description><![CDATA[
#include&amp;lt;stdio.h&amp;gt;
#include&amp;lt;unistd.h&amp;gt;
#include&amp;lt;string.h&amp;gt;

int main()
{
  //一维数组
  //本系统为64位
  //int a[] = {1,2,3,4};
  //printf(&quot;16::%ld\n&quot;,sizeof(a));
  //printf(&quot;8::%ld\n&quot;,sizeof(a...]]></description><category></category></item><item><title><![CDATA[通讯录项目]]></title><link>https://blog.youkuaiyun.com/qq_36767247/article/details/80643002</link><guid>https://blog.youkuaiyun.com/qq_36767247/article/details/80643002</guid><author>qq_36767247</author><pubDate>Sun, 10 Jun 2018 17:48:48 +0800</pubDate><description><![CDATA[首先我们的通讯录包括4条用户信息：ID姓名电话地址我们的对通讯录的操作包括增加一条用户信息删除一条用户信息查找用户信息（模糊匹配）修改一条用户信息:输入姓名修改地址和电话打印通讯录的全部用户信息退出通讯录系统我们用以保存用户信息的就是我们的链表接下来我们先来看一下头文件#include&amp;lt;stdio.h&amp;gt;#include&amp;lt;unistd.h&amp;gt;#include&amp;lt;stdlib...]]></description><category></category></item><item><title><![CDATA[c++强制类型转换]]></title><link>https://blog.youkuaiyun.com/qq_36767247/article/details/80635114</link><guid>https://blog.youkuaiyun.com/qq_36767247/article/details/80635114</guid><author>qq_36767247</author><pubDate>Sat, 09 Jun 2018 18:29:11 +0800</pubDate><description><![CDATA[C语言我们从c语言的强制类型转换（显示和隐式）开始说起：我们先写一个例子来回顾一下我们的强制类型转换#include&amp;lt;stdio.h&amp;gt;#include&amp;lt;iostream&amp;gt;using namespace std;int main(){  //隐式类型转换  //1.  //将一个int型的数赋给double型  int a = 10;  double b = a;  cout...]]></description><category></category></item><item><title><![CDATA[虚拟机未正常关闭]]></title><link>https://blog.youkuaiyun.com/qq_36767247/article/details/80634714</link><guid>https://blog.youkuaiyun.com/qq_36767247/article/details/80634714</guid><author>qq_36767247</author><pubDate>Sat, 09 Jun 2018 17:56:29 +0800</pubDate><description><![CDATA[写这篇博客是因为我自己无数次的，忘记关虚拟机，然后强制关机，在开机的时候，然后就整个人都不好了，在网上找了好多种办法，其中最常见的一种就是找到我们保存虚拟机的文件夹，找到里面的以lck为结尾的文件夹，将其全部删除，其实虚拟机在正常关机的时候就会将这些文件自动的删除掉，所以，如果虚拟机没有正常关机的话，那这些文件当然就不会被删除啦，那不会被删除我们虚拟机在开机的时候发现这些文件还在，那么他就会以为这...]]></description><category></category></item><item><title><![CDATA[面试题：中国象棋将帅问题]]></title><link>https://blog.youkuaiyun.com/qq_36767247/article/details/80628357</link><guid>https://blog.youkuaiyun.com/qq_36767247/article/details/80628357</guid><author>qq_36767247</author><pubDate>Fri, 08 Jun 2018 21:36:41 +0800</pubDate><description><![CDATA[中国象棋将帅问题（输出所有将帅的合法位置）我们看一下怎么来看将和帅的位置，来比较她们两的位置是否会冲突我们用数字1~9来标记棋子的位置然后进行比较A=将，B=帅本题的难点其实是在如何使用一个变量来保存这一个将，还有另一个帅的位置第一种方法那我们其实可以这样，我们可以使用一个8个比特的变量来保存这两个数据，前四个比特来保存A的位置，后四个比特来保存B的位置四个比特刚好可以保存2^4=16个数字而我们...]]></description><category></category></item><item><title><![CDATA[面试题：字符串移位包含问题]]></title><link>https://blog.youkuaiyun.com/qq_36767247/article/details/80628349</link><guid>https://blog.youkuaiyun.com/qq_36767247/article/details/80628349</guid><author>qq_36767247</author><pubDate>Fri, 08 Jun 2018 21:34:41 +0800</pubDate><description><![CDATA[问题描述挺简单的，就是给两个字符串，判断一个是否可以被另一个循环移位（定义向右循环移位）得到的字符串包含（也可为本身，也可为子串）解法一我们可以先直接进行字符串的移位工作，在进行字符串包含的判断，从而遍历器所有的可能性但是这个方法比较浪费，因为要遍历所有的可能性并且要进行字符串的移位，并且在移位的过程中一不小心就会将字符串覆盖掉，所以一定要小心代码如下//直接翻转bool Judge( char ...]]></description><category></category></item></channel></rss>