<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[foooooods的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/foooooods</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; foooooods]]></copyright><item><title><![CDATA[OSI七层模型]]></title><link>https://blog.youkuaiyun.com/foooooods/article/details/102756297</link><guid>https://blog.youkuaiyun.com/foooooods/article/details/102756297</guid><author>foooooods</author><pubDate>Sat, 26 Oct 2019 14:59:45 +0800</pubDate><description><![CDATA[物理层：主要定义物理设备标准，如网线的接口类型，光纤的接口类型，各种传输介质的传输速率等，他的主要作用是传输比特流（就是由1，0转化为电流强弱来进行传输，到达目的地后再转化为1，0，也就是我们常说的数模转换与模数转换）这一层的数据叫做比特。
	数据链路层：定义了如何让格式化数据以帧为单位进行传输，以及如何控制对物理介质的访问，这一层通常还提供错误检测和纠正，以确保数据的可靠传输。
	网络层：在位于...]]></description><category></category></item><item><title><![CDATA[排序算法（堆排序）]]></title><link>https://blog.youkuaiyun.com/foooooods/article/details/102754396</link><guid>https://blog.youkuaiyun.com/foooooods/article/details/102754396</guid><author>foooooods</author><pubDate>Sat, 26 Oct 2019 11:54:50 +0800</pubDate><description><![CDATA[堆排序

1.什么是堆

堆通常是一个可以被看做一棵完全二叉树的数组对象。

堆总是满足下列性质：

堆中某个节点的值总是不大于或不小于其父节点的值；
	堆总是一棵完全二叉树。
堆的定义如下：

n个元素的序列{k1,k2,ki,…,kn}当且仅当满足下关系时，称之为堆。
	(ki &lt;= k2i,ki &lt;= k2i+1)或者(ki &gt;= k2i,ki &gt;= k2i+1),...]]></description><category></category></item><item><title><![CDATA[TIME_WAIT状态]]></title><link>https://blog.youkuaiyun.com/foooooods/article/details/102751378</link><guid>https://blog.youkuaiyun.com/foooooods/article/details/102751378</guid><author>foooooods</author><pubDate>Fri, 25 Oct 2019 23:46:02 +0800</pubDate><description><![CDATA[客户端在接收到服务器的结束报文段之后，并没有直接进入closed状态，而是转移到了TIME_WAIT状态，在这个状态，客户端连接要等待一段长为2msl的时间（报文的最大生存时间），才能完全关闭，msl是tcp报文段在网络中的最大生存时间，标准文档的建议值是2min.

TIME_WAIT状态存在的原因有两点：

可靠的终止tcp连接
	保证迟来的tcp报文段有足够的时间被识别并被丢弃
第一个原...]]></description><category></category></item><item><title><![CDATA[c  知识点总结]]></title><link>https://blog.youkuaiyun.com/foooooods/article/details/102747590</link><guid>https://blog.youkuaiyun.com/foooooods/article/details/102747590</guid><author>foooooods</author><pubDate>Fri, 25 Oct 2019 18:03:57 +0800</pubDate><description><![CDATA[c/c++的区别？
	讲一讲多态？如何实现多态？
	构造函数额能不能写成虚函数？
	析构函数能不能写成虚函数？
	inline函数能不能写成虚函数？
	static函数能不能写成虚函数？
	析构函数什么情况下写成虚函数？
	rtti是什么？
	虚表什么时候产生？
	虚表存放在哪里？
	项目中的mvc模式如何使用到多态的？可不可以不使用？
	项目中为什莫使用mvc？
	介绍项目中使用的单例模式？
	...]]></description><category></category></item><item><title><![CDATA[基础编程题]]></title><link>https://blog.youkuaiyun.com/foooooods/article/details/102708300</link><guid>https://blog.youkuaiyun.com/foooooods/article/details/102708300</guid><author>foooooods</author><pubDate>Wed, 23 Oct 2019 18:27:59 +0800</pubDate><description><![CDATA[#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;iostream&gt;
#include &lt;algorithm&gt;
#include&lt;string.h&gt;
using namespace  std;

int max_muns(int m,int n)
{
    int t;
    if(m...]]></description><category></category></item><item><title><![CDATA[atoi() 与stoi()函数]]></title><link>https://blog.youkuaiyun.com/foooooods/article/details/102673590</link><guid>https://blog.youkuaiyun.com/foooooods/article/details/102673590</guid><author>foooooods</author><pubDate>Mon, 21 Oct 2019 22:43:35 +0800</pubDate><description><![CDATA[共同点：

都是c++的字符处理函数，把数字字符串转变为int输出
	头文件都是#include&lt;cstring&gt;
不同点：

atoi()的参数是const char *,因此对于字异字符串str我们必须调用c_str()的方法把这个string 转换成const char *类型的，stoi()的参数是const string *，不需要转换成const char *;
	stoi...]]></description><category></category></item><item><title><![CDATA[笔试总结（一）]]></title><link>https://blog.youkuaiyun.com/foooooods/article/details/102668779</link><guid>https://blog.youkuaiyun.com/foooooods/article/details/102668779</guid><author>foooooods</author><pubDate>Mon, 21 Oct 2019 17:55:27 +0800</pubDate><description><![CDATA[c++岗位基础知识

c++中函数有三种传递方式：值传递，指针传递，引用传递
	描述"A小于B或小于C"的表达式为：
	用new申请某一个类的动态对象数组时，在该类中必须能够匹配到默认构造函数，否成程序会产生一个编译错误
	举出c++中自定义的数据类型：class,struct,enum,union
	简述成员函数，全局函数，和友元函数的差别
	结构struct 和类class有什么区别
	析构函...]]></description><category></category></item><item><title><![CDATA[两道算法题]]></title><link>https://blog.youkuaiyun.com/foooooods/article/details/102653453</link><guid>https://blog.youkuaiyun.com/foooooods/article/details/102653453</guid><author>foooooods</author><pubDate>Sun, 20 Oct 2019 20:48:30 +0800</pubDate><description><![CDATA[1

			2

			3

			4

			5

			6

			7

			8

			9

			10

			11

			12

			13

			14

			15

			16

			17

			18

			19

			20

			21

			22

			23

			24

			25

			26

			27

			28

			...]]></description><category></category></item><item><title><![CDATA[一些简单函数的实现]]></title><link>https://blog.youkuaiyun.com/foooooods/article/details/102640881</link><guid>https://blog.youkuaiyun.com/foooooods/article/details/102640881</guid><author>foooooods</author><pubDate>Sat, 19 Oct 2019 17:27:31 +0800</pubDate><description><![CDATA[#include&lt;iostream&gt;
#include&lt;stdio.h&gt;
#include&lt;vector&gt;
#include&lt;assert.h&gt;
#include &lt;string.h&gt;
using namespace  std;


#include &lt;stdio.h&gt;

#include &lt;assert.h&gt;
...]]></description><category></category></item><item><title><![CDATA[合并两个有序数组]]></title><link>https://blog.youkuaiyun.com/foooooods/article/details/102631095</link><guid>https://blog.youkuaiyun.com/foooooods/article/details/102631095</guid><author>foooooods</author><pubDate>Fri, 18 Oct 2019 21:09:27 +0800</pubDate><description><![CDATA[题目：给定两个有序数组,nums1和nums2,将nums2合并到nums1中，使得nums1成为一个有序数组（假设nums1）有足够的空间

思路：

（1）申请一个新的数组，从前往后同时扫描两个数组，每次取两个数组中较小的元素，并将相应数组的扫描指针右移一步

题目假设nums1有足够的空间，则可以直接将Nums2中的数据合并到nums1中

数组的合并结果和原始数组Nums1的元素需要同时存...]]></description><category></category></item><item><title><![CDATA[总结一些易错的代码运行题]]></title><link>https://blog.youkuaiyun.com/foooooods/article/details/102579680</link><guid>https://blog.youkuaiyun.com/foooooods/article/details/102579680</guid><author>foooooods</author><pubDate>Wed, 16 Oct 2019 10:34:05 +0800</pubDate><description><![CDATA[#include&lt;stdio.h&gt;
#include&lt;iostream&gt;
using namespace std;
void main()
{
  char *x = "abcd";
  x+= 2;
  cout&lt;&lt;x;
}



#include&lt;stdio.h&gt;
#include&lt;iostream&gt;
using namespace...]]></description><category></category></item><item><title><![CDATA[IO复用——poll系统调用]]></title><link>https://blog.youkuaiyun.com/foooooods/article/details/101636724</link><guid>https://blog.youkuaiyun.com/foooooods/article/details/101636724</guid><author>foooooods</author><pubDate>Sat, 28 Sep 2019 20:50:22 +0800</pubDate><description><![CDATA[poll系统调用和select 系统调用类似，也是在指定时间内轮询一定数量的文件描述符，以测试其中是否有就绪着，poll 原型如下：


#include&lt;poll.h&gt;
int poll(struct pollfd*fds,nfds_t nfds,int timeout);


(1)参数fds是一个pofffd结构类型的数组，它指定我们所有感兴趣的文件描述符上发生的可读可写和异常的...]]></description><category></category></item><item><title><![CDATA[IO复用-——select]]></title><link>https://blog.youkuaiyun.com/foooooods/article/details/101623307</link><guid>https://blog.youkuaiyun.com/foooooods/article/details/101623307</guid><author>foooooods</author><pubDate>Sat, 28 Sep 2019 17:24:11 +0800</pubDate><description><![CDATA[IO复用使得程序能够监听多个文件描述符，这对提高程序的性能至关重要。通常，网络程序在下列情况下需要使用IO复用技术。

客户端程序需要同时处理多个socket
	客户端程序需要同时处理用户输入和网络连接
	tcp服务器要同时处理连接套接字和监听套接字
	服务器需要同时处理tcp请求和udp请求
	服务器同时要监听多个端口或者处理多种服务
select系统调用

在一段指定时间内监听用户感兴趣的文件...]]></description><category></category></item><item><title><![CDATA[高性能io框架库libevnet 简介]]></title><link>https://blog.youkuaiyun.com/foooooods/article/details/101436146</link><guid>https://blog.youkuaiyun.com/foooooods/article/details/101436146</guid><author>foooooods</author><pubDate>Thu, 26 Sep 2019 13:26:01 +0800</pubDate><description><![CDATA[libevent 库简介

libevent 是一款事件驱动的网络开发包，由于采用c语言开发 ，体积小，跨平台，速度极快，大量开源项目使用了libevent比如谷歌浏览器，和分布式告诉缓存系统memcached，libevnet支持kqueue,select，poll，epoll，iocp（非阻塞的工作模式），事件内部机制完全独立于公开的额事件api,libevnet 支持跨平台，可在lin...]]></description><category></category></item><item><title><![CDATA[SQL]]></title><link>https://blog.youkuaiyun.com/foooooods/article/details/99676794</link><guid>https://blog.youkuaiyun.com/foooooods/article/details/99676794</guid><author>foooooods</author><pubDate>Fri, 16 Aug 2019 14:27:23 +0800</pubDate><description><![CDATA[SQL概述

sql(structured query language)是一套程序员和底层数据库交流的一套标准

SQL的分类

数据查询语言（DQL-data query language）

代表关键字select

数据操纵语言DML（data manipulation language）

代表关键字 insert delete update

数据定义语言（DDL data defin...]]></description><category></category></item><item><title><![CDATA[STL标准模板库简介h]]></title><link>https://blog.youkuaiyun.com/foooooods/article/details/99648976</link><guid>https://blog.youkuaiyun.com/foooooods/article/details/99648976</guid><author>foooooods</author><pubDate>Thu, 15 Aug 2019 18:23:41 +0800</pubDate><description><![CDATA[STL诞生

可重复利用
	c++面向对象和泛型编程思想，目的就是重复性的提升
	大多数情况下，数据结构和算法都未能有一套标准，导致被迫从事大量重复工作
	为了建立数据结构和算法的一套标准，诞生了STL
STL基本概念

STL标准模板库（standard Template Library）
	DTL从广义上分为 容器（container）算法（algorithm）迭代器（iterator）
	容...]]></description><category></category></item><item><title><![CDATA[c++外观模式代码举栗子]]></title><link>https://blog.youkuaiyun.com/foooooods/article/details/99623560</link><guid>https://blog.youkuaiyun.com/foooooods/article/details/99623560</guid><author>foooooods</author><pubDate>Thu, 15 Aug 2019 10:45:04 +0800</pubDate><description><![CDATA[#include&lt;stdio.h&gt;
#include&lt;iostream&gt;
#include&lt;string&gt;
using namespace std;
/*外观模式：就是将复杂的子类系统抽象到同一个接口进行管理。外界只需要通过此接口与子类系统进行交互，
而不必直接与复杂的子类系统进行交互*/
//电视
class Television
{
publ...]]></description><category></category></item><item><title><![CDATA[c++代理模式]]></title><link>https://blog.youkuaiyun.com/foooooods/article/details/99620581</link><guid>https://blog.youkuaiyun.com/foooooods/article/details/99620581</guid><author>foooooods</author><pubDate>Thu, 15 Aug 2019 09:28:22 +0800</pubDate><description><![CDATA[代理模式的定义：

为其他对象提供一种代理以控制这个对象的访问，在某些情况下，一个对象不适合或者不可能直接引用另一个对象，而代理对象可以在客户端和目标对象之间起到中介的作用。

代理模式实现：


#include &lt;iostream&gt;
#include&lt;string&gt;
using namespace std;
//提供一种代理控制其他对象的访问
class Abstrac...]]></description><category></category></item><item><title><![CDATA[c++引用]]></title><link>https://blog.youkuaiyun.com/foooooods/article/details/99168064</link><guid>https://blog.youkuaiyun.com/foooooods/article/details/99168064</guid><author>foooooods</author><pubDate>Sun, 11 Aug 2019 09:54:30 +0800</pubDate><description><![CDATA[引用的基本作用

引用作用:给变量起别名

数据类型&amp;别名=原名


int a=10;
int &amp;b=a;
b=20;
cout&lt;&lt;a&lt;&lt;endl;   //20
//因为ab操作同一块内存

引用的注意事项

引用必须初始化
	引用初始化后就不能在改变

int a=10;
//int &amp;b; //err
int &amp;b=a; //ok
...]]></description><category></category></item><item><title><![CDATA[new关键字]]></title><link>https://blog.youkuaiyun.com/foooooods/article/details/99167357</link><guid>https://blog.youkuaiyun.com/foooooods/article/details/99167357</guid><author>foooooods</author><pubDate>Sun, 11 Aug 2019 09:17:22 +0800</pubDate><description><![CDATA[new 的基本语法


int * func()
{
    //在堆区创建整形数据
    //new 返回是 该数据类型的指针
    //返回int *
    int *p=new int(10);

    return p;

}

void test01()
{
    int *p=func();
    cout&lt;&lt;*p&lt;&lt;endl;
    cout&l...]]></description><category></category></item></channel></rss>