<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Sun_student的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/Sun_student</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; Sun_student]]></copyright><item><title><![CDATA[C++ deque的使用]]></title><link>https://blog.csdn.net/Sun_student/article/details/100077155</link><guid>https://blog.csdn.net/Sun_student/article/details/100077155</guid><author>Sun_student</author><pubDate>Mon, 26 Aug 2019 15:25:33 +0800</pubDate><description><![CDATA[1、简介 

   1、双端队列是动态大小的序列式容器，其可以向两端进行伸缩；

   2、特定的库可以以不同的方式实现deque，但通常都是一种动态数组；不论在何种情况下，它都允许通过随机访问迭代器直接访问单个元素，可以根据需要动态的伸缩；

   3、deque提供一些与vector相似的功能，但deque在头部和尾部进行数据插入和删除操作更加高效。与vector不...]]></description><category></category></item><item><title><![CDATA[C++容器----list总结]]></title><link>https://blog.csdn.net/Sun_student/article/details/90405006</link><guid>https://blog.csdn.net/Sun_student/article/details/90405006</guid><author>Sun_student</author><pubDate>Mon, 26 Aug 2019 12:05:52 +0800</pubDate><description><![CDATA[1.概述

  1.list是可以在常数范围内在任意位置进行插入和删除的序列式容器，并且该容器可以前后双向迭代。

  2.list的底层是双向链表结构，双向链表中每个元素存储在互不相关的独立节点中，在节点中通过指针指向器前一个元素和后一个元素。

  3.list与forward_list非常相似：最主要的不同在于forward_list是单链表，只能朝前迭代，已让其更简单高效...]]></description><category></category></item><item><title><![CDATA[Linux多线程]]></title><link>https://blog.csdn.net/Sun_student/article/details/89667804</link><guid>https://blog.csdn.net/Sun_student/article/details/89667804</guid><author>Sun_student</author><pubDate>Mon, 26 Aug 2019 11:01:18 +0800</pubDate><description><![CDATA[1.线程

  线程概念：linux下，线程以进程的pcb模拟实现，因此linux下的线程就是pcb，是一个轻量级进程；

  简单谈一谈线程：说到线程概念，必须先说到进程。进程是一个运行中的程序，在操作系统中，一个程序运行起来，程序被加载到内存中，操作系统创建一个进程描述符（进程控制块），PCB对程序的运行进行描述控制，因此进程就是pcb，在linux是task_struct结构体。

...]]></description><category></category></item><item><title><![CDATA[项目：数据卫士]]></title><link>https://blog.csdn.net/Sun_student/article/details/99945473</link><guid>https://blog.csdn.net/Sun_student/article/details/99945473</guid><author>Sun_student</author><pubDate>Thu, 22 Aug 2019 14:32:13 +0800</pubDate><description><![CDATA[一、设计思想

  在学校使用百度网盘，每次下载文件的速度特别慢（下载文件电脑都要开一晚上），于是我有了一个想法，自己实现一个文件的上传、备份、下载的小项目，给自己和舍友使用。

二、设计平台

  windows下vs2013实现客户端myClient，CentOS下实现服务端myServer和myCompress



三、设计内容

  1、客户端

    1&gt...]]></description><category></category></item><item><title><![CDATA[项目：保密]]></title><link>https://blog.csdn.net/Sun_student/article/details/100009915</link><guid>https://blog.csdn.net/Sun_student/article/details/100009915</guid><author>Sun_student</author><pubDate>Thu, 22 Aug 2019 14:29:42 +0800</pubDate><description><![CDATA[首先介绍一下加密相关的知识：

  1、加密分为对称加密和非对称加密

    对称加密：双方使用同一种加密/解密规则，对信息进行加密和解密。

    非对称加密：一方生成两把密钥（公钥和私钥），公钥是公开的，私钥是保密的；另一方获取到公钥，然后用它对信息加密；一方得到加密后的信息，用私钥解密。

  2、RSA加密/解密公式

     加密：公钥（E...]]></description><category></category></item><item><title><![CDATA[C++容器---vector总结]]></title><link>https://blog.csdn.net/Sun_student/article/details/90296122</link><guid>https://blog.csdn.net/Sun_student/article/details/90296122</guid><author>Sun_student</author><pubDate>Mon, 20 May 2019 14:25:13 +0800</pubDate><description><![CDATA[1.vector介绍

  1.vector是表示可变大小数组的序列容器；

  2.就像数组一样，vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问，和数组一样高效。但是又不像数组，它的大小是可以动态改变的，而且它的大小会被容器自动处理；

  3.本质讲，vector使用动态分配数组来存储它的元素，当新元素插入时候，这个数组需要被重新分...]]></description><category></category></item><item><title><![CDATA[C++容器---string知识点总结]]></title><link>https://blog.csdn.net/Sun_student/article/details/90289356</link><guid>https://blog.csdn.net/Sun_student/article/details/90289356</guid><author>Sun_student</author><pubDate>Fri, 17 May 2019 16:36:07 +0800</pubDate><description><![CDATA[1.标准库中的string类

  简单概述：

    1.string是表示字符串的字符串类

    2.该类的接口与常规容器的接口基本相同，再添加了一些专门用来操作string的常规操作

    3.string在底层实际是：basic_string模板类的别名，typedef basic_string&lt;cahr, char_traits, allcoa...]]></description><category></category></item><item><title><![CDATA[C++模板总结]]></title><link>https://blog.csdn.net/Sun_student/article/details/90105428</link><guid>https://blog.csdn.net/Sun_student/article/details/90105428</guid><author>Sun_student</author><pubDate>Fri, 17 May 2019 10:31:37 +0800</pubDate><description><![CDATA[1.泛型编程

  理解：就是编写与类型无关的通用代码，是代码复用的一种手段。

  为什么要实现泛型编程？

    我们已经知道在C++中函数可重载，在函数重载有些地方不好使用：代码的复用率比较低；代码的可维护性比较低。因为C++中有模板，所以采用模板可以实现泛型编程，从而生成代码，这样就不需要我们去一个一个重载一些通用的函数。（比如：交换函数）

  从这里我们引出模板...]]></description><category></category></item><item><title><![CDATA[C&C++内存管理]]></title><link>https://blog.csdn.net/Sun_student/article/details/88779465</link><guid>https://blog.csdn.net/Sun_student/article/details/88779465</guid><author>Sun_student</author><pubDate>Wed, 08 May 2019 11:07:47 +0800</pubDate><description><![CDATA[1.C/C++内存分布

  经典问题：

       

       

       

  说明：1、栈又叫堆栈，非静态局部变量/函数参数/返回值等等，栈是向下增长的；

       2、内存映射段是高效的I/O映射方式，用于装载一个共享的动态内存库；

       3、堆用于程序运行时动态内存分配，堆...]]></description><category></category></item><item><title><![CDATA[Linux下的信号（signal）]]></title><link>https://blog.csdn.net/Sun_student/article/details/89428258</link><guid>https://blog.csdn.net/Sun_student/article/details/89428258</guid><author>Sun_student</author><pubDate>Tue, 07 May 2019 09:36:24 +0800</pubDate><description><![CDATA[1.信号：是一个软中断--通知进程事件的发生

  信号的生命周期：产生-&gt;注册-&gt;注销-&gt;处理

  产生：（硬件/软件）

  处理：（默认/忽略/自定义）

2.信号的产生

  62种信号---使用kill -l命令查看

  1-31   （非可靠信号/非实时信号）

  34 -64 （可靠信号/实时信号）

  硬件产生：ctrl+...]]></description><category></category></item><item><title><![CDATA[linux下进程通信]]></title><link>https://blog.csdn.net/Sun_student/article/details/89039585</link><guid>https://blog.csdn.net/Sun_student/article/details/89039585</guid><author>Sun_student</author><pubDate>Sat, 27 Apr 2019 09:54:20 +0800</pubDate><description><![CDATA[1.基本介绍

  进程间通信的目的：数据传输、资源共享、进程控制

  如何通信的？

    1.因为进程独立性，因此通信需要双方拥有公共的媒介才能通信，而这个媒介由操作系统提供；

    2.因为通信场景不同，因此操作系统也提供多种不同的进程间通信方式；

2.进程间通信方式：

  1&gt;管道：匿名管道/命名管道---半双工通信1

 

  管...]]></description><category></category></item><item><title><![CDATA[Linux命令练习]]></title><link>https://blog.csdn.net/Sun_student/article/details/89597365</link><guid>https://blog.csdn.net/Sun_student/article/details/89597365</guid><author>Sun_student</author><pubDate>Sat, 27 Apr 2019 09:31:05 +0800</pubDate><description><![CDATA[1. 将之前所创建的目录和文件全部清理掉

  
2. 在家目录下创建 ~/workspace/cmd 目录以及 ~/workspace/tmp/test 目录（什么是家目录？）

  

  家目录是在/home里面的目录
3. 进入 ~/workspace/cmd 目录，创建一个空文件my.txt

 
4. 使用重定向&gt;&gt;与echo命令向my.txt文件写入 h...]]></description><category></category></item><item><title><![CDATA[数据结构七大排序及时间复杂度和空间复杂度的比较]]></title><link>https://blog.csdn.net/Sun_student/article/details/88244343</link><guid>https://blog.csdn.net/Sun_student/article/details/88244343</guid><author>Sun_student</author><pubDate>Mon, 15 Apr 2019 22:31:08 +0800</pubDate><description><![CDATA[1、插入排序

 主要思想：从第一个元素开始往后走，只不过每次比较从后往前比较。

 具体实现：记录走到的元素的值，给前面排好序的元素比较，遇见大的向后搬移，直到遇见小的，将该值放在小值的后面


void InsertSort(int array[], int size)
{
    for (int i = 0; i &lt; size; i++){
        int last ...]]></description><category></category></item><item><title><![CDATA[linux下的基础IO]]></title><link>https://blog.csdn.net/Sun_student/article/details/86413836</link><guid>https://blog.csdn.net/Sun_student/article/details/86413836</guid><author>Sun_student</author><pubDate>Fri, 05 Apr 2019 07:30:31 +0800</pubDate><description><![CDATA[Linux下IO的系统调用接口 文件流指针 文件描述符 文件重定向

Linux下ext2文件系统 inode节点 软链接/硬链接 动态库和静态库的生成

1.系统调用接口： open、close、write、read、lseek

库函数和系统调用函数的关系：上下级的调用关系

    int open(const char* pathname, int flags...]]></description><category></category></item><item><title><![CDATA[深入探索C++类和对象]]></title><link>https://blog.csdn.net/Sun_student/article/details/88773411</link><guid>https://blog.csdn.net/Sun_student/article/details/88773411</guid><author>Sun_student</author><pubDate>Sun, 24 Mar 2019 10:29:01 +0800</pubDate><description><![CDATA[1.构造函数

  1&gt;构造函数体赋值

    在创建对象时，编译器通过调用构造函数，给对象中各个成员变量一个合适的初始值。

    注意：成员变量只初始化一次（在初始化列表中），构造函数体内的语句只能将其称为赋初值，而不能称为初始化，因此构造函数体内可以多次赋值。

  2&gt;初始化列表

    初始化列表：以一个冒号开始，接着是一个逗号分隔的数据...]]></description><category></category></item><item><title><![CDATA[C++类和对象默认成员函数总结]]></title><link>https://blog.csdn.net/Sun_student/article/details/88541187</link><guid>https://blog.csdn.net/Sun_student/article/details/88541187</guid><author>Sun_student</author><pubDate>Fri, 15 Mar 2019 19:53:37 +0800</pubDate><description><![CDATA[1.类的6个默认成员函数有哪些

 

2.构造函数

  什么是构造函数？

    构造函数是一个特殊的成员函数，名字与类名相同，创建类类型对象时由编译器自己调用，保证每个数据成员都有一个合适的初始值，并且在对象的生命周期内只调用一次（其主要任务是初始化对象）

  构造函数的特性

    1、函数名和类名相同

    2、无返回值

    ...]]></description><category></category></item><item><title><![CDATA[C++类与对象基础知识]]></title><link>https://blog.csdn.net/Sun_student/article/details/88519520</link><guid>https://blog.csdn.net/Sun_student/article/details/88519520</guid><author>Sun_student</author><pubDate>Wed, 13 Mar 2019 20:30:12 +0800</pubDate><description><![CDATA[1.初步认识类与对象

  主观世界的抽象类别-----&amp;gt;计算机世界中的类；现实世界的实体-----&amp;gt;计算机世界的对象；

  在现实世界中，实体被抽象成抽象类别；在计算机世界中，类可以被实例化为对象；

  简述C语言与C++的区别：

    C语言是面向过程的，关注的是过程，分析出求解问题的步骤，通过函数调用逐步解决问题；

    C++基于面向对象...]]></description><category></category></item><item><title><![CDATA[C++基础知识]]></title><link>https://blog.csdn.net/Sun_student/article/details/88418315</link><guid>https://blog.csdn.net/Sun_student/article/details/88418315</guid><author>Sun_student</author><pubDate>Tue, 12 Mar 2019 20:38:38 +0800</pubDate><description><![CDATA[1.C++关键字



2.命名空间

  为什么要有命名空间？

    因为在c++语言中变量、函数、类的名称都存在于全局作用域中，可能会导致很多冲突，使用命名空间的目的是对标识符的名称进行本地化，以避免命名冲突或名字污染

  怎么定义命名空间？

    需要使用namespace关键字，后面跟命名空间的名字，然后接一对{}即可，其中{}中为命名空间的成员，举例如下...]]></description><category></category></item><item><title><![CDATA[XMind总结C语言知识]]></title><link>https://blog.csdn.net/Sun_student/article/details/87277550</link><guid>https://blog.csdn.net/Sun_student/article/details/87277550</guid><author>Sun_student</author><pubDate>Thu, 14 Feb 2019 15:46:36 +0800</pubDate><description><![CDATA[本次总结主要针对C语言的总体框架总结，知识点比较全面，但内容还是有缺陷，具体了解还需看书本。



 ]]></description><category></category></item><item><title><![CDATA[递归与非递归实现二叉树的遍历]]></title><link>https://blog.csdn.net/Sun_student/article/details/86659194</link><guid>https://blog.csdn.net/Sun_student/article/details/86659194</guid><author>Sun_student</author><pubDate>Sat, 26 Jan 2019 17:41:42 +0800</pubDate><description><![CDATA[主要讲解二叉树的遍历问题：

  前序遍历：访问根结点的操作发生在遍历其左右子树之前。

  中序遍历：访问根结点的操作发生在遍历其左右子树中。

  后序遍历：访问根结点的操作发生在遍历其左右子树之后。

  层序遍历：设二叉树的根结点所在层数为1，层序遍历就是从所在二叉树根结点出发，首先访问第一层的树根结点，然后从左到右访问第2层上的节点，接着是第三层的节点，以此类推，...]]></description><category></category></item></channel></rss>