<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ruo_bing的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ruo_bing</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ruo_bing]]></copyright><item><title><![CDATA[二叉树]]></title><link>https://blog.youkuaiyun.com/ruo_bing/article/details/86607640</link><guid>https://blog.youkuaiyun.com/ruo_bing/article/details/86607640</guid><author>ruo_bing</author><pubDate>Tue, 02 Apr 2019 20:39:46 +0800</pubDate><description><![CDATA[基本概念
1.树的基本概念：
除了线性结构的另外一种数据结构，一堆元素的集合，有一个结点叫根结点…
结点的度:结点拥有字树的个数
结点的层次：根节点到该结点的分支数
树的度：树中所有结点最大的度为该树的度
树的深度：结点层次最大的个数为树的深度
2.二叉树的基本概念和性质
二叉树：是结点的一个有限集合，该集合为空，或者由一个根结点加上两颗分别称为坐子树和右子树的二叉树组成
特点：每个结点最多有两棵...]]></description><category></category></item><item><title><![CDATA[字符串的使用]]></title><link>https://blog.youkuaiyun.com/ruo_bing/article/details/88362659</link><guid>https://blog.youkuaiyun.com/ruo_bing/article/details/88362659</guid><author>ruo_bing</author><pubDate>Sun, 10 Mar 2019 10:16:38 +0800</pubDate><description><![CDATA[字符串的三种表达形式：
char *ptr = &amp;quot;abcdfef&amp;quot; ;  //字符串常量，存放在常量区
char ptr[] = &amp;quot;abcd&amp;quot;;//    strlen(ptr)--&amp;amp;gt;5
char ptr[] = {'a','b','c','d','\n'};    //和第二个是一个意思
char ptr[] = {'a','b','c','d'};      strlen(ptr)---...]]></description><category></category></item><item><title><![CDATA[网络基础2]]></title><link>https://blog.youkuaiyun.com/ruo_bing/article/details/83153152</link><guid>https://blog.youkuaiyun.com/ruo_bing/article/details/83153152</guid><author>ruo_bing</author><pubDate>Sat, 02 Mar 2019 12:08:25 +0800</pubDate><description><![CDATA[#网络基础2----各层中的协议
应用层的协议：
有自定制协议和知名协议
###1.自定制协议–程序员自己设计的数据传输格式；
使用例子：网络计算器（客服端将两个数字和运算符传输到服务端，由服务端计算并返回返回结果）
结构化的数据传输（定义了一个结构体来组织数据），使得数据的组织和解析变得很方便
结构体在内存中，前四个字节就是int a,其次就是int b,接下来就是运算符，另一端以这种方式来解析...]]></description><category></category></item><item><title><![CDATA[数组指针和指针数组]]></title><link>https://blog.youkuaiyun.com/ruo_bing/article/details/88068882</link><guid>https://blog.youkuaiyun.com/ruo_bing/article/details/88068882</guid><author>ruo_bing</author><pubDate>Fri, 01 Mar 2019 21:31:34 +0800</pubDate><description><![CDATA[数组指针（也称行指针）
定义 int (*p)[n];
()优先级高，首先说明p是一个指针，指向一个整型的一维数组，这个一维数组的长度是n，也可以说是p的步长。也就是说执行p+1时，p要跨过n个整型数据的长度。
如要将二维数组赋给一指针，应这样赋值：
int a[3][4];
int (*p)[4]; //该语句是定义一个数组指针，指向含4个元素的一维数组。
p=a;        //将该二维数...]]></description><category></category></item><item><title><![CDATA[排序]]></title><link>https://blog.youkuaiyun.com/ruo_bing/article/details/86557665</link><guid>https://blog.youkuaiyun.com/ruo_bing/article/details/86557665</guid><author>ruo_bing</author><pubDate>Thu, 28 Feb 2019 21:17:06 +0800</pubDate><description><![CDATA[排序
（重点：快排，堆排，希尔，归并排序）以及它们的时间复杂度
插入排序

直接插入排序（洗牌，对已经有序的元素，进来新的时候进行排序）-------O(N方）
5 4 3 2  1
5|  4 3 2 1（第一个数看做有序）
4 5| 3  2 1，插入一个数后任然有序
3 4 5| 2 1
2 3 4 5|  1
1 2 3 4 5
时间复杂度：最多搬移n次 ，最多比较n次
稳定性：稳定，相邻...]]></description><category></category></item><item><title><![CDATA[数据结构----堆]]></title><link>https://blog.youkuaiyun.com/ruo_bing/article/details/86608085</link><guid>https://blog.youkuaiyun.com/ruo_bing/article/details/86608085</guid><author>ruo_bing</author><pubDate>Thu, 28 Feb 2019 10:09:17 +0800</pubDate><description><![CDATA[堆的基本概念
1.如果有一个关键码的集合K = {k0，k1， k2，…，kn-1}，把它的所有元
素按完全二叉树的顺序存储方式存储在一个一维数组中，并满足：
Ki &amp;amp;amp;amp;lt;= K2i+1 且 Ki&amp;amp;amp;amp;lt;= K2i+2 (Ki &amp;amp;amp;amp;gt;= K2i+1 且 Ki &amp;amp;amp;amp;gt;= K2i+2) i =0，1，2…，则称为小堆(或大堆)。
2.小堆（堆顶元素最小）

3.大堆]]></description><category></category></item><item><title><![CDATA[智能指针]]></title><link>https://blog.youkuaiyun.com/ruo_bing/article/details/86532117</link><guid>https://blog.youkuaiyun.com/ruo_bing/article/details/86532117</guid><author>ruo_bing</author><pubDate>Sat, 16 Feb 2019 20:52:17 +0800</pubDate><description><![CDATA[c++面试重点：
继承，多态，智能指针(什么是RAII，内存泄漏问题，代码实现）
1.** 为什么要有智能指针？**
最重要的一个作用就是防止内存泄漏，（什么是内存泄漏？申请的空间没有释放。内存泄漏是指针丢了还是内存丢了？指针，通过指针可以找到这块内存，然后可以进行释放）
所以，普通指针丢了会导致内存泄露的问题。
另外一个作用就是解决异常安全问题，异常导致执行流乱跳，可能就会直接忽略释放动态内存的...]]></description><category></category></item><item><title><![CDATA[网络基础1]]></title><link>https://blog.youkuaiyun.com/ruo_bing/article/details/83035344</link><guid>https://blog.youkuaiyun.com/ruo_bing/article/details/83035344</guid><author>ruo_bing</author><pubDate>Wed, 13 Feb 2019 11:08:28 +0800</pubDate><description><![CDATA[网络基础分为以下三部分来讲
1.网络发展史
独立模式：以前每台计算机机器都是独立工作的，
网络互联：多个计算机连接在一起
局域网：局部地区在使用一个路由器将各个主机连在一起
广域网：
为了将相隔千里的主机连接起来，用路由器将各个局域网连接起来叫做广域网
例子：在国内，我们可以说自己在一个广域网，放在全球，我们在局域网中，两个没有明显的区分。
以太网：
2.网络编程
3.高级IO(多路复用技术）
接...]]></description><category></category></item><item><title><![CDATA[时间复杂度]]></title><link>https://blog.youkuaiyun.com/ruo_bing/article/details/83691268</link><guid>https://blog.youkuaiyun.com/ruo_bing/article/details/83691268</guid><author>ruo_bing</author><pubDate>Wed, 14 Nov 2018 22:36:41 +0800</pubDate><description><![CDATA[时间复杂度
衡量算法的好坏：时间复杂度和空间复杂度（内存占用）
O渐近表达式
1.时间复杂度（本质是一个函数，函数计算的是总的执行次数）
去掉低次项
系数化为1
常数都是O（1）
2.为什么使用执行次数而不是时间来衡量算法的好坏？
因为两个主机的”环境“可能不一样，比如一台此时要执行四个算法，另外一个要执行一个算法，在真正执行时，算法之间还会抢夺cpu分配的时间等。但次数不受影响。
F(n） =…...]]></description><category></category></item><item><title><![CDATA[函数的栈帧]]></title><link>https://blog.youkuaiyun.com/ruo_bing/article/details/82954673</link><guid>https://blog.youkuaiyun.com/ruo_bing/article/details/82954673</guid><author>ruo_bing</author><pubDate>Thu, 11 Oct 2018 15:36:02 +0800</pubDate><description><![CDATA[栈帧–函数的调用过程
每一次函数调用都是一个过程，这个过程称为函数的调用过程，这个过程要为函数开辟栈空间，用于本次调用中存放临时变量和保护现场，这块栈空间称之为函数栈帧。
所以调用函数的成本要花时间和空间。
函数中的局部变量–需要时开辟，运行完毕时释放，在栈区
static修饰的变量----程序运行完毕时，变量也一直在，静态区
在栈上申请的是临时变量。

函数可以传参，也可以不传参，一旦传参，就会...]]></description><category></category></item><item><title><![CDATA[c++虚函数与多态]]></title><link>https://blog.youkuaiyun.com/ruo_bing/article/details/82927486</link><guid>https://blog.youkuaiyun.com/ruo_bing/article/details/82927486</guid><author>ruo_bing</author><pubDate>Wed, 03 Oct 2018 12:03:53 +0800</pubDate><description><![CDATA[夫人们佛

]]></description><category></category></item><item><title><![CDATA[继承（下）----虚继承]]></title><link>https://blog.youkuaiyun.com/ruo_bing/article/details/82917949</link><guid>https://blog.youkuaiyun.com/ruo_bing/article/details/82917949</guid><author>ruo_bing</author><pubDate>Tue, 02 Oct 2018 18:01:39 +0800</pubDate><description><![CDATA[单继承&amp;amp;amp;amp;多继承
一个子类只有一个直接父类时称这种继承关系为单继承。
一个子类有两个或者两个以上的父类时称这种继承关系为多继承。

菱形继承 ---------特殊的多继承

有很大的缺点：

二义性
如上图，D中会有两份相同的数据，本质都来源于A，在调用派生类里面的这个数据时就会出现问题时就会出现二义性问题。
数据冗余
D有两个父类，则数据会很多，甚至有重复的，造成数据冗余

解决办法一：...]]></description><category></category></item><item><title><![CDATA[继承（上）]]></title><link>https://blog.youkuaiyun.com/ruo_bing/article/details/82886821</link><guid>https://blog.youkuaiyun.com/ruo_bing/article/details/82886821</guid><author>ruo_bing</author><pubDate>Mon, 01 Oct 2018 18:34:31 +0800</pubDate><description><![CDATA[继承
继承概念：
一个类中包含成员变量和成员函数，不同的类它们的数据和函数往往是不同的，但是有时候两个类的内容基本相同或者有一部分相同，例如以下两个类：
第一个类：
class student
{
     public:
    void display()
{
     cout&amp;amp;amp;amp;lt;&amp;amp;amp;amp;lt;num&amp;amp;amp;amp;lt;&amp;amp;amp;amp;lt;endl;
    cout&amp;am]]></description><category></category></item><item><title><![CDATA[进程间关系和守护进程]]></title><link>https://blog.youkuaiyun.com/ruo_bing/article/details/82915830</link><guid>https://blog.youkuaiyun.com/ruo_bing/article/details/82915830</guid><author>ruo_bing</author><pubDate>Mon, 01 Oct 2018 17:13:30 +0800</pubDate><description><![CDATA[进程间的关系：
进程间的关系除了有父子关系，还有组的关系。
进程组：一个或者多个进程的集合
进程组中有一个进程是组长进程，进程组id就等于这个进程的pid
进程组不会随着组长进程退出而退出，而是等组中的所有进程退出后才退出，进程组内即使只有一个进程了，组依然存在。
ctrl c 是使前台进程组退出（s+,前台 进程，s,没有+的是后台进程，指令后加个&amp;amp;amp;，就变后台进程）
前台换后台 Ctrl...]]></description><category></category></item><item><title><![CDATA[简单介绍静态库动态库]]></title><link>https://blog.youkuaiyun.com/ruo_bing/article/details/82845581</link><guid>https://blog.youkuaiyun.com/ruo_bing/article/details/82845581</guid><author>ruo_bing</author><pubDate>Sun, 30 Sep 2018 21:38:18 +0800</pubDate><description><![CDATA[发布文章 博文管理我的博客退出    Trash         Temp         c++继承         const的         static----数据         动态和静态库         动态库和静态库         静态库和动态库的简单         引用         运算符重载简单     # 静态库和动态库
通常习惯把公用的函数制成函数库
函数库分为...]]></description><category></category></item><item><title><![CDATA[Linux信号----进程间异步的通信机制]]></title><link>https://blog.youkuaiyun.com/ruo_bing/article/details/82227957</link><guid>https://blog.youkuaiyun.com/ruo_bing/article/details/82227957</guid><author>ruo_bing</author><pubDate>Sun, 30 Sep 2018 21:36:26 +0800</pubDate><description><![CDATA[信号



一    概念和功能：

信号实际上是一个软中断，用于通知进程发生了某些事,该如何处理。 
实际上也归为一类进程间通信方式， 信号的生命周期：信号的产生-信号的注册-信号的阻塞（/屏蔽）-信号的注销-信号的处理



二   查看信号：

kill -l ，查看linux下全部信号，可看出信号是由编号和宏组成； 


kill并不是杀死一个进程，而是为了给某一个指定的进程发送信号。  ...]]></description><category></category></item><item><title><![CDATA[线性（下）----线程安全]]></title><link>https://blog.youkuaiyun.com/ruo_bing/article/details/82913498</link><guid>https://blog.youkuaiyun.com/ruo_bing/article/details/82913498</guid><author>ruo_bing</author><pubDate>Sun, 30 Sep 2018 21:14:37 +0800</pubDate><description><![CDATA[线程安全
因为进程中线程共享了进程中的虚拟地址空间，所以线程间的通信更加方便，但数据有可能存在争抢关系，缺乏数据的访问控制，多个线程并发容易造成数据混乱，所以数据安全访问变得很重要。
造成数据混乱的的两个经典模型
同步与互斥概念
同步：线程/进程之间对临界资源的顺序访问关系（对临界资源访问的时序性）
互斥：线程/进程之间对临界资源的同一时间的唯一访问性关系
生产者与消费者模型
一个场所，两个角色，...]]></description><category></category></item><item><title><![CDATA[多线程（上）]]></title><link>https://blog.youkuaiyun.com/ruo_bing/article/details/82805336</link><guid>https://blog.youkuaiyun.com/ruo_bing/article/details/82805336</guid><author>ruo_bing</author><pubDate>Sun, 30 Sep 2018 21:11:57 +0800</pubDate><description><![CDATA[能吃呢

]]></description><category></category></item><item><title><![CDATA[进程间的通信---管道、system v]]></title><link>https://blog.youkuaiyun.com/ruo_bing/article/details/81629984</link><guid>https://blog.youkuaiyun.com/ruo_bing/article/details/81629984</guid><author>ruo_bing</author><pubDate>Tue, 25 Sep 2018 21:51:02 +0800</pubDate><description><![CDATA[ls  -a(所有文件)  -l(属性)  ls -ltr 
mkdir -p  test/a/b/c  递归创建 
rm -r  
rm -f 
cp 
mv 
cd  
pwd


树状结构 
文件： 
touch, 
创建文件，如果存在则刷新时间属性 
cat  -n 
tac 
more  //分页显示，只能像后看，q退出 
less   //上下键翻页，/ +字符串，可以字符串匹配 
...]]></description><category></category></item><item><title><![CDATA[const的使用总结]]></title><link>https://blog.youkuaiyun.com/ruo_bing/article/details/82805322</link><guid>https://blog.youkuaiyun.com/ruo_bing/article/details/82805322</guid><author>ruo_bing</author><pubDate>Fri, 21 Sep 2018 18:02:58 +0800</pubDate><description><![CDATA[const修饰符
在C语言中有：#define MAX 20这种方式来定义变量，c++中用const来定义变量和#define的作用相同，消除了#define的不安全性（操作符优先级引起的不安全问题）。
且c++中一些数据是共享的，破坏了数据的安全性，常类型的引入，既保证了数据共享，又防止数据被修改，常类型的值在程序运行期间是不能被改变的。
const和指针使用
分为三种：
const char ...]]></description><category></category></item></channel></rss>