<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Xuan_Ray的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Xuan_Ray</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Xuan_Ray]]></copyright><item><title><![CDATA[C++ Complex类实现]]></title><link>https://blog.youkuaiyun.com/Xuan_Ray/article/details/115417533</link><guid>https://blog.youkuaiyun.com/Xuan_Ray/article/details/115417533</guid><author>Xuan_Ray</author><pubDate>Sat, 03 Apr 2021 16:31:24 +0800</pubDate><description><![CDATA[Complex类是典型的不含指针的类。
下面贴出代码：
#ifndef __COMPLEX_H_
#define __COMPLEX_H_

// a += b += c;     结合律 right -&gt; left
// cout &lt;&lt; a &lt;&lt; b;  结合律 left  -&gt; right

#include &lt;iostream&gt;

//编译器会生成默认的拷贝构造，拷贝赋值，和析构函数
class Complex {
public:
    Complex]]></description><category></category></item><item><title><![CDATA[C++典型String类的编写（包含move实现）]]></title><link>https://blog.youkuaiyun.com/Xuan_Ray/article/details/115415808</link><guid>https://blog.youkuaiyun.com/Xuan_Ray/article/details/115415808</guid><author>Xuan_Ray</author><pubDate>Sat, 03 Apr 2021 14:38:43 +0800</pubDate><description><![CDATA[C++面向对象是区别于C的典型特征，C++中类有两种不同的类型。

数据成员不含指针的；典型代表有Complex类。
数据成员含指针的；典型为字符串String类。

C++11中提出了新概念move semantics（可译为移动语义），可以简单理解为移动语义为**“浅拷贝”**，具体可查资料了解。
下面贴出String类的具体代码：
#ifndef __STRING_H_
#define __STRING_H_ 

#include &lt;cstring&gt;
#include &lt;iostre]]></description><category></category></item><item><title><![CDATA[C++虚函数指针vptr与虚函数表vtbl]]></title><link>https://blog.youkuaiyun.com/Xuan_Ray/article/details/114801892</link><guid>https://blog.youkuaiyun.com/Xuan_Ray/article/details/114801892</guid><author>Xuan_Ray</author><pubDate>Sun, 14 Mar 2021 22:43:35 +0800</pubDate><description><![CDATA[这里写了一个测试模拟对象内存模型中的虚函数调用机制（业界称动态绑定，Dynamic Binding）。
#include &lt;iostream&gt;
using namespace std;

struct TMP {
	int a;
	int b;
	int c;

	TMP() {
		a = 1; b = 1; c = 1;
	}

	int operator*() const{
		return a + b + c;
	}
};

TMP t1, t2, t3;

TMP arr[] = {t]]></description><category></category></item><item><title><![CDATA[C++ pointer-like class]]></title><link>https://blog.youkuaiyun.com/Xuan_Ray/article/details/114762403</link><guid>https://blog.youkuaiyun.com/Xuan_Ray/article/details/114762403</guid><author>Xuan_Ray</author><pubDate>Sat, 13 Mar 2021 23:12:43 +0800</pubDate><description><![CDATA[C++2.0之前，有个智能指针叫auto_ptr。
-&gt;符号作用下去之后，会一直作用下去。
sp-&gt;已经作用完了，还能px-&gt;吗？ 可以的，会一直作用下去，这样子这个设计才有意义。

代码：
template&lt;typename T&gt;
class shared_ptr {
public:
	shared_ptr(T* p) : px(p) {}

	// 智能指针一定是这种写法，重载 * 和 -&gt;
	T&amp; operator*() const{
		return *p]]></description><category></category></item><item><title><![CDATA[C++显式构造函数和隐式构造函数]]></title><link>https://blog.youkuaiyun.com/Xuan_Ray/article/details/114759430</link><guid>https://blog.youkuaiyun.com/Xuan_Ray/article/details/114759430</guid><author>Xuan_Ray</author><pubDate>Sat, 13 Mar 2021 20:06:10 +0800</pubDate><description><![CDATA[函数中参数的叫法：

parameter一般认为叫参数；
argument一般认为叫实参；
参数个数和实参个数是不一样的。

//对于A这么个类，有个构造函数
A(int a, int b, int c = 1)
	: a(m), b(n) {}

这里认为parameter参数需要3个，argument实参2个，3个肯定没问题（但是只要两个实参就够了）。
explicit关键字一般用在类的构造函数中，表示显式创建对象，编译器不能隐式转换构造。
见代码：
#include &lt;iostream&gt;
]]></description><category></category></item><item><title><![CDATA[C++转换函数Conversion function]]></title><link>https://blog.youkuaiyun.com/Xuan_Ray/article/details/114759062</link><guid>https://blog.youkuaiyun.com/Xuan_Ray/article/details/114759062</guid><author>Xuan_Ray</author><pubDate>Sat, 13 Mar 2021 19:28:11 +0800</pubDate><description><![CDATA[C++中的转换函数能将一个 “类型” 转化为你想要的 “类型”，不管是built-in 类型还是 user-defined 类型。
方法为

operator typename() {}

见代码：
#include &lt;iostream&gt;
using namespace std;

class Fraction {
public:
	Fraction(int num, int den = 1)
		: m_numerator(num), m_denominator(den) {}

	opera]]></description><category></category></item><item><title><![CDATA[C++继承和组合情况下构造和析构顺序]]></title><link>https://blog.youkuaiyun.com/Xuan_Ray/article/details/114755351</link><guid>https://blog.youkuaiyun.com/Xuan_Ray/article/details/114755351</guid><author>Xuan_Ray</author><pubDate>Sat, 13 Mar 2021 17:55:56 +0800</pubDate><description><![CDATA[第一种情况

这里主要是考虑，Base part和Component part哪个先构造的问题。
上代码：
#include &lt;iostream&gt;
using namespace std;

class Component {
public: 
	Component(int c = 0) : _C_c(c) {
		cout &lt;&lt; "调用Component的构造函数" &lt;&lt; endl;
	}

	~Component() {
		cout &lt;&lt; "调用Comp]]></description><category></category></item><item><title><![CDATA[word写论文事项]]></title><link>https://blog.youkuaiyun.com/Xuan_Ray/article/details/114239167</link><guid>https://blog.youkuaiyun.com/Xuan_Ray/article/details/114239167</guid><author>Xuan_Ray</author><pubDate>Sun, 28 Feb 2021 20:18:05 +0800</pubDate><description><![CDATA[公式居中，编号右对齐，引用编号
参考：

https://www.cnblogs.com/salan668/p/3686126.html
https://jingyan.baidu.com/article/4dc408486da1e1c8d946f133.html


]]></description><category></category></item><item><title><![CDATA[机器学习和深度学习的比较综述]]></title><link>https://blog.youkuaiyun.com/Xuan_Ray/article/details/114150820</link><guid>https://blog.youkuaiyun.com/Xuan_Ray/article/details/114150820</guid><author>Xuan_Ray</author><pubDate>Fri, 26 Feb 2021 20:06:05 +0800</pubDate><description><![CDATA[TODO

]]></description><category></category></item><item><title><![CDATA[tensorflow与cuda和cudnn版本关系]]></title><link>https://blog.youkuaiyun.com/Xuan_Ray/article/details/114068702</link><guid>https://blog.youkuaiyun.com/Xuan_Ray/article/details/114068702</guid><author>Xuan_Ray</author><pubDate>Thu, 25 Feb 2021 11:21:39 +0800</pubDate><description><![CDATA[一定要严格按照版本对应关系下载驱动，不然各种问题。
最近，跑一个深度学习模型，用的tensorflow-gpu 1.15.0，结果下载的驱动为10.2版本的，裂开来。

]]></description><category></category></item><item><title><![CDATA[Cisco Encrypted Traffic Analysis(ETA)]]></title><link>https://blog.youkuaiyun.com/Xuan_Ray/article/details/113922935</link><guid>https://blog.youkuaiyun.com/Xuan_Ray/article/details/113922935</guid><author>Xuan_Ray</author><pubDate>Sun, 21 Feb 2021 20:25:49 +0800</pubDate><description><![CDATA[These two articles say that “fancy” classification features like packet interarrival times are coming to commercial firewalls. Cisco calls it Encrypted Traffic Analysis (ETA). It is based on some published research and a free software prototype.
https://ww]]></description><category></category></item><item><title><![CDATA[json格式的理解]]></title><link>https://blog.youkuaiyun.com/Xuan_Ray/article/details/113921394</link><guid>https://blog.youkuaiyun.com/Xuan_Ray/article/details/113921394</guid><author>Xuan_Ray</author><pubDate>Sun, 21 Feb 2021 18:13:03 +0800</pubDate><description><![CDATA[TODO

]]></description><category></category></item><item><title><![CDATA[python一些常见]]></title><link>https://blog.youkuaiyun.com/Xuan_Ray/article/details/113915639</link><guid>https://blog.youkuaiyun.com/Xuan_Ray/article/details/113915639</guid><author>Xuan_Ray</author><pubDate>Sun, 21 Feb 2021 11:26:25 +0800</pubDate><description><![CDATA[os.path.splitext() 将文件名和扩展名分开
os.path.split() 返回文件的路径和文件名
os.path.join() 合并文件名和路径
string.split() 按某种分隔符分割字符串

]]></description><category></category></item><item><title><![CDATA[Wireshark常见问题汇总]]></title><link>https://blog.youkuaiyun.com/Xuan_Ray/article/details/113895672</link><guid>https://blog.youkuaiyun.com/Xuan_Ray/article/details/113895672</guid><author>Xuan_Ray</author><pubDate>Sat, 20 Feb 2021 20:58:08 +0800</pubDate><description><![CDATA[TCP payload 和 TCP segment data

TCP payload是这个报文tcp负载的长度。
TCP segment data是数据部分的长度。
就比如这里，server hello的record layer占了58bytes，实际上后面的那部分数据是certificate的。

借用 ask.wireshark.org 论坛上的一个回答：

As you probably know TCP is a stream transport, which means it is intend]]></description><category></category></item><item><title><![CDATA[一些常用的工具]]></title><link>https://blog.youkuaiyun.com/Xuan_Ray/article/details/113880552</link><guid>https://blog.youkuaiyun.com/Xuan_Ray/article/details/113880552</guid><author>Xuan_Ray</author><pubDate>Sat, 20 Feb 2021 12:04:02 +0800</pubDate><description><![CDATA[pip install慢
因为镜象在国外，用清华镜像源就行了。
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple +package

git clone慢
macOS：

git clone特别慢是因为github.global.ssl.fastly.net域名被限制了。只要找到这个域名对应的ip地址，然后在hosts文件中加上ip–&gt;域名的映射，刷新DNS缓存便可


nslookup github.global.ssl.fastly.n]]></description><category></category></item><item><title><![CDATA[Linux一些基本命令]]></title><link>https://blog.youkuaiyun.com/Xuan_Ray/article/details/113871217</link><guid>https://blog.youkuaiyun.com/Xuan_Ray/article/details/113871217</guid><author>Xuan_Ray</author><pubDate>Fri, 19 Feb 2021 20:21:51 +0800</pubDate><description><![CDATA[ifconfig
显示或设置网络设备。
echo
显示提示信息，一般用在shell脚本中。
find
find 命令用来在指定目录下查找文件。

]]></description><category></category></item><item><title><![CDATA[数字子序列和模m最大值问题]]></title><link>https://blog.youkuaiyun.com/Xuan_Ray/article/details/113852175</link><guid>https://blog.youkuaiyun.com/Xuan_Ray/article/details/113852175</guid><author>Xuan_Ray</author><pubDate>Fri, 19 Feb 2021 11:13:05 +0800</pubDate><description><![CDATA[问题描述：

给定一个非负数组arr，和一个正数m。
返回arr的所有子序列中累加和 %m 之后的最大值。

如果arr中每个数字不大，怎么做？
如果arr中 m 的值很小，怎么做？
如果arr的长度很短，但是arr每个数字比较大并且m比较大呢？


1. 暴力解法（ O(N^2) ）
所有子序列的和模上m的值全部求出来，求出最大的即可。
code：
/** 生成每个子序列和的递归函数 
*	@param arr: 原始数组名
*   @param n:   原始数组长度
*   @param aux_ar]]></description><category></category></item><item><title><![CDATA[根据后序遍历数组生成一棵搜索二叉树]]></title><link>https://blog.youkuaiyun.com/Xuan_Ray/article/details/113834762</link><guid>https://blog.youkuaiyun.com/Xuan_Ray/article/details/113834762</guid><author>Xuan_Ray</author><pubDate>Wed, 17 Feb 2021 15:42:41 +0800</pubDate><description><![CDATA[具体思想画个图就行：

code1：找分界处位置用顺序查找
// 节点的类型 
struct TreeNode {
	TreeNode* left;
	TreeNode* right;
	int val;
	
	TreeNode(int value) : val(value), \
						  left(NULL), right(NULL) {}
};

// declaration
TreeNode* process(int*, int, int);

/**  postArrToBST
*	 @pa]]></description><category></category></item><item><title><![CDATA[纸条折痕（对折N次）打印问题]]></title><link>https://blog.youkuaiyun.com/Xuan_Ray/article/details/113832790</link><guid>https://blog.youkuaiyun.com/Xuan_Ray/article/details/113832790</guid><author>Xuan_Ray</author><pubDate>Wed, 17 Feb 2021 12:08:32 +0800</pubDate><description><![CDATA[问题描述：

把一段纸条竖放在桌子上，然后从纸条的下边向上方对折一次，压出折痕后展开。此时折痕是凹下去的。如果从纸条的下边向上方连续对折两次，压出折痕后展开，此时有三条折痕，从上到下依次是凹、凹、凸。

给定一个参数N，代表纸条从下到上连续对折N次。请从上到下打印所有折痕的方向。
eg：N = 1，打印down； N = 2，打印down、down、up。


这个问题动手试验就能发现规律。

code:
#include &lt;iostream&gt; 

// declaration
void pr.]]></description><category></category></item><item><title><![CDATA[算法时间复杂度之master公式]]></title><link>https://blog.youkuaiyun.com/Xuan_Ray/article/details/113832096</link><guid>https://blog.youkuaiyun.com/Xuan_Ray/article/details/113832096</guid><author>Xuan_Ray</author><pubDate>Wed, 17 Feb 2021 11:04:10 +0800</pubDate><description><![CDATA[master公式是相对于递归算法而言：

递推公式为：T(N) = a * T(N / b) + O(Nd)

有下面的结论：

如果记不住，手推一下就行。

]]></description><category></category></item></channel></rss>