<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[R_T_P_A_D的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/R_T_P_A_D</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; R_T_P_A_D]]></copyright><item><title><![CDATA[文本相似度检测小项目]]></title><link>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/88370737</link><guid>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/88370737</guid><author>R_T_P_A_D</author><pubDate>Sat, 09 Mar 2019 22:37:55 +0800</pubDate><description><![CDATA[项目介绍
	文本查重的方式有很多，但都离不开分词这一项，所以在这里我选择jieba库来代替我分词；
		相似度求法也很多，比如说余弦距离、欧几里得距离、曼哈顿距离等等，这里我选择余弦距离，比较容易理解。
	
	项目规划
	分词
		统计词频
		构建余弦向量
		求余弦距离
	
	项目过程
	引入jieba库，这个库可以在网上直接找到，下载之后配置到项目中即可；
		创建一个TestTextSim...]]></description><category></category></item><item><title><![CDATA[剑指offer21-25]]></title><link>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/85076993</link><guid>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/85076993</guid><author>R_T_P_A_D</author><pubDate>Tue, 18 Dec 2018 20:34:38 +0800</pubDate><description><![CDATA[第21题：输入两个整数序列，第一个序列表示栈的压入顺序，请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。

思路：先将压栈序列压入辅助栈s中，当辅助栈顶元素和出栈序列有相同时，出栈，然后继续检测，直到辅助栈没有元素为止。无元素为true，有元素为false


class Solution {
public:
    bool IsPopOrder(vector&amp;lt;in...]]></description><category></category></item><item><title><![CDATA[剑指offer16-20]]></title><link>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/85056743</link><guid>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/85056743</guid><author>R_T_P_A_D</author><pubDate>Mon, 17 Dec 2018 21:26:51 +0800</pubDate><description><![CDATA[第16题：输入两个单调递增的链表，输出两个链表合成后的链表，当然我们需要合成后的链表满足单调不减规则。


//递归
class Solution {
public:
    ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
    {
        if(pHead1 == nullptr)
            return pHead...]]></description><category></category></item><item><title><![CDATA[剑指offer真题11-15]]></title><link>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/85056506</link><guid>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/85056506</guid><author>R_T_P_A_D</author><pubDate>Mon, 17 Dec 2018 21:20:10 +0800</pubDate><description><![CDATA[11题：输入一个整数，输出该数二进制表示中1的个数。其中负数用补码表示


//法一
//让n减去1，我们发现，在让他和原来的n按位与之后，n中的1会减少一个，依次循环下去，就可以累计出1的个数，且这个方式不用担心负数的问题
class Solution {
public:
     int  NumberOf1(int n) {
         int count = 0;
         ...]]></description><category></category></item><item><title><![CDATA[继承]]></title><link>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/85046260</link><guid>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/85046260</guid><author>R_T_P_A_D</author><pubDate>Mon, 17 Dec 2018 12:32:21 +0800</pubDate><description><![CDATA[1.什么是继承？

无非就是字面意思，继承家产而已。

官方说法：面向对象程序设计使代码可以复用的手段，它允许程序员在保持原有类特性的基础上进行扩展，增加功能，这样产生新的类，称为派生类。

特点：呈现了面向对象程序设计的层次结构，体现了由简单到复杂的认知过程，继承使类设计层次的复用。


class Person
{
public:
	Person(string name = &quot;david&quot;,i...]]></description><category></category></item><item><title><![CDATA[Linux基础命令]]></title><link>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84995177</link><guid>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84995177</guid><author>R_T_P_A_D</author><pubDate>Fri, 14 Dec 2018 22:45:46 +0800</pubDate><description><![CDATA[
ls指令
用法：ls[选项][目录文件]
功能：列出该目录下的所有子目录和文件。
选项：
-a	列出目录下的所有文件，包括以 . 开头的隐含文件
-d	将目录像文件一样显示，而不是显示其下的文件
-i	输出文件的i节点的索引信息，如ls -ai 指定文件
-l	列出文件的详细信息
-k	以k字节的形式表示文件的大小，要和-l和-a一起使用，如ls -alk 指定文件
-r	对目录反向排序
-t	...]]></description><category></category></item><item><title><![CDATA[剑指offer真题6--10]]></title><link>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84993939</link><guid>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84993939</guid><author>R_T_P_A_D</author><pubDate>Thu, 13 Dec 2018 19:58:46 +0800</pubDate><description><![CDATA[第六题：把一个数组最开始的若干个元素搬到数组的末尾，我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转，输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转，该数组的最小值为1。 NOTE：给出的所有元素都大于0，若数组大小为0，请返回0。

分析：这个题看似简单，但是会出现数组元素重复的情况，用二分查找比较便捷；


class Solution {
...]]></description><category></category></item><item><title><![CDATA[剑指offer真题1--5]]></title><link>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84993714</link><guid>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84993714</guid><author>R_T_P_A_D</author><pubDate>Thu, 13 Dec 2018 19:37:56 +0800</pubDate><description><![CDATA[第一题：在一个二维数组中（每个一维数组的长度相同），每一行都按照从左到右递增的顺序排序，每一列都按照从上到下递增的顺序排序。请完成一个函数，输入这样的一个二维数组和一个整数，判断数组中是否含有该整数。

分析：因为这是一个有序的二维数组，且从左至右递增，从上至下递增，经过画图就会发现，再这个二维数组中有两个特殊的位置，左下角和右上角，这两个位置和其他地方不同，只有两条路径，分析起来更为简单，且两条...]]></description><category></category></item><item><title><![CDATA[stack和queue的操作和实现]]></title><link>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84938899</link><guid>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84938899</guid><author>R_T_P_A_D</author><pubDate>Mon, 10 Dec 2018 13:56:52 +0800</pubDate><description><![CDATA[
stack的操作
|函数名| 功能 |
|–|--|
| stack(const container_type &amp;amp;ctnr = container_type()) | 构造空栈 |
|bool empty() const判断栈是否为空|
|size_type size() const|返回栈的长度|
|value_type &amp;amp;top()|返回栈顶元素的引用|
|const val...]]></description><category></category></item><item><title><![CDATA[list类的使用方法]]></title><link>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84847408</link><guid>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84847408</guid><author>R_T_P_A_D</author><pubDate>Thu, 06 Dec 2018 10:43:48 +0800</pubDate><description><![CDATA[一、list的底层构造

1.list是可以再常熟范围内任意位置进行插入、删除的序列式容器，并且list还可以前后双向迭代；

2.list的底层是一个双向链表结构，list和forward_list非常相似：forward_list是单链表。只能朝前迭代；

3.list保留了链表的基本特性。

二、list的构造

函数名
			功能
		list()
			构造空的list
		list(s...]]></description><category></category></item><item><title><![CDATA[二叉树的三种非递归遍历（leetcode）]]></title><link>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84817653</link><guid>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84817653</guid><author>R_T_P_A_D</author><pubDate>Wed, 05 Dec 2018 09:57:05 +0800</pubDate><description><![CDATA[一、前序遍历



前序遍历的思想是：根左右

1.根节点1让自己存起来再去找左子树，根节点的左节点不存在，所以指向他的右节点；

2.节点2先存自己然后指向他的左节点，左节点存在，存入左节点，而且左节点没有孩子节点，所以再指向右节点，右节点不存在，直接返回


class Solution {
public:
    vector&amp;lt;int&amp;gt; preorderTraversal(Tre...]]></description><category></category></item><item><title><![CDATA[list接口实现]]></title><link>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84816707</link><guid>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84816707</guid><author>R_T_P_A_D</author><pubDate>Wed, 05 Dec 2018 08:59:42 +0800</pubDate><description><![CDATA[
//模拟实现list容器
namespace LIST
{
	
	template&amp;lt;class T&amp;gt;
	//list的节点类
	struct ListNode
	{	
		ListNode(const T&amp;amp; val = T())
			: _pPre(nullptr)
			, _pNext(nullptr)
			, _val(val)
		{}	
		ListNode* ...]]></description><category></category></item><item><title><![CDATA[list的iterator]]></title><link>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84815906</link><guid>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84815906</guid><author>R_T_P_A_D</author><pubDate>Wed, 05 Dec 2018 08:43:04 +0800</pubDate><description><![CDATA[
template&amp;lt;class T, class Ref, class Ptr&amp;gt;
	class ListIterator
	{
		typedef ListNode&amp;lt;T&amp;gt;* PNode;
		typedef ListIterator&amp;lt;T, Ref, Ptr&amp;gt; Self;
	public:
		ListIterator(PNode pNode = nullptr)...]]></description><category></category></item><item><title><![CDATA[vector的使用方法]]></title><link>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84783050</link><guid>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84783050</guid><author>R_T_P_A_D</author><pubDate>Tue, 04 Dec 2018 09:47:57 +0800</pubDate><description><![CDATA[一、vector的构造函数

函数名
			功能
		vector()
			无参构造
		vector(size_type n, const value_type &amp;amp;val = value_type())
			构造并初始化n个val
		vector(const vector&amp;amp; x)
			拷贝构造
		vector(InputIterator first,InputItera...]]></description><category></category></item><item><title><![CDATA[vector类接口实现]]></title><link>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84781416</link><guid>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84781416</guid><author>R_T_P_A_D</author><pubDate>Mon, 03 Dec 2018 23:15:13 +0800</pubDate><description><![CDATA[
namespace VECTOR
{
	template&amp;lt;class T&amp;gt;
	class vector
	{
	public:
		typedef T* Iterator;
		typedef const T* ConstIterator;

		Iterator begin()
		{
			return _start;
		}
		Iterator end()
		{
			re...]]></description><category></category></item><item><title><![CDATA[string类接口实现]]></title><link>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84657851</link><guid>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84657851</guid><author>R_T_P_A_D</author><pubDate>Fri, 30 Nov 2018 16:16:18 +0800</pubDate><description><![CDATA[
namespace bit
{
	class String
{
public:
	typedef char* Iterator;
public:
	String(const char* str = &quot; &quot;)
	{
		if(str == nullptr)
		{
			assert(false);
			return ;
		}
		_size = strlen(str);
		_capacit...]]></description><category></category></item><item><title><![CDATA[string类使用方法]]></title><link>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84656747</link><guid>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84656747</guid><author>R_T_P_A_D</author><pubDate>Fri, 30 Nov 2018 16:02:04 +0800</pubDate><description><![CDATA[一、string类对象的常见构造




函数名
功能




string()
构造空的string类对象，即空字符串


string(const char* s)
用C-string来构造string类对象，即空类中包含字符串


string(size_t n,char c)
string类对象种包含n个字符c


string(const string&amp;amp; s)
拷贝构造函数


...]]></description><category></category></item><item><title><![CDATA[动态内存管理]]></title><link>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84203498</link><guid>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84203498</guid><author>R_T_P_A_D</author><pubDate>Sun, 18 Nov 2018 20:18:08 +0800</pubDate><description><![CDATA[一、内存分布

先看C++中程序内存区域划分。



1.栈又称为堆栈，非静态局部变量/函数参数/返回值等；

2.内存映射是高效I/O映射方式，用作进程间通信；

3.堆用于动态内存分配；

4.数据段存储全局数据和静态数据；

5.代码段一般就是可执行代码；

6.内核是用户不能操作的那部分。

二、C++和C语言的动态内存管理

在C语言中我们都知道，C语言的动态内存管理一般用malloc/...]]></description><category></category></item><item><title><![CDATA[类与对象3]]></title><link>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84191183</link><guid>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84191183</guid><author>R_T_P_A_D</author><pubDate>Sat, 17 Nov 2018 18:08:45 +0800</pubDate><description><![CDATA[注：这是一篇补充博客。
一、构造函数补充；
1.构造函数体赋值：
在创建对象时，编译器通过调用构造函数，给对象中每个成员一个合适的初始值。
class Date
{
public:
 Date(int year, int month, int day)
 {
  _year = year;
  _month = month;
  _day = day;
 }
private:
 int _year...]]></description><category></category></item><item><title><![CDATA[将静态顺序表改为动态顺序表]]></title><link>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84189753</link><guid>https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84189753</guid><author>R_T_P_A_D</author><pubDate>Sat, 17 Nov 2018 16:13:26 +0800</pubDate><description><![CDATA[注：本篇只是大概实现动态顺序表，静态顺序表详叙请参照https://blog.youkuaiyun.com/R_T_P_A_D/article/details/84189236

实现动态顺序表，只需在静态顺序表上做两个变化就可以实现：

首先，需要将静态顺序表里面的宏定义取消掉，因为这是静态顺序表中最不安全的地方，任何人都可以去改变这个宏，所以在这里，我们需要将原本的数组形式的data，改为*data，其实...]]></description><category></category></item></channel></rss>