<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Aaron_M的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Aaron_M</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Aaron_M]]></copyright><item><title><![CDATA[解决虚拟机上的Linux无法与主机进行文件复制黏贴]]></title><link>https://blog.youkuaiyun.com/Aaron_M/article/details/113094192</link><guid>https://blog.youkuaiyun.com/Aaron_M/article/details/113094192</guid><author>Aaron_M</author><pubDate>Sun, 24 Jan 2021 18:01:11 +0800</pubDate><description><![CDATA[前提：安装了 VMware Tools 仍然无法复制文件，只能进行文字的复制黏贴。

替代方法：建立 “共享文件”

选择 “虚拟机设置” 下的“选项”，选择“共享文件夹”，选择共享文件 目录地址。


（NOTE：主机上的该文件夹的属性，需要设置为“共享”）



Linux 终端进入 共享文件夹的所在位置。 即“./mnt/hgfs/”




这时候，就可以使用 cp 的方法，将共享文件夹内的内容 拷贝 到虚拟机上进行操作。



...]]></description><category></category></item><item><title><![CDATA[Linux 下 安装 libevent，运行sample出错]]></title><link>https://blog.youkuaiyun.com/Aaron_M/article/details/110926652</link><guid>https://blog.youkuaiyun.com/Aaron_M/article/details/110926652</guid><author>Aaron_M</author><pubDate>Wed, 09 Dec 2020 15:20:06 +0800</pubDate><description><![CDATA[首先运行编译 sample 中的 hello.c，命令如下： -levent 表示 动态链接库



生成 hello 可执行文件，运行 ./hello ，出现如下错误：

./hello: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory

原因是：系统不知道libevent-2.0.so.放在哪个目录下，这个时候就要在...]]></description><category></category></item><item><title><![CDATA[LeetCode 164. 最大间距（C++）]]></title><link>https://blog.youkuaiyun.com/Aaron_M/article/details/110221483</link><guid>https://blog.youkuaiyun.com/Aaron_M/article/details/110221483</guid><author>Aaron_M</author><pubDate>Fri, 27 Nov 2020 09:52:30 +0800</pubDate><description><![CDATA[LeetCode 164.最大间距 2020.11.27

题目描述：

给定一个无序的数组，找出数组在排序之后，相邻元素之间最大的差值。如果数组元素个数小于 2，则返回 。





输入: [3,6,9,1]

输出: 3

解释: 排序后的数组是 [1,3,6,9], 其中相邻元素 (3,6) 和 (6,9) 之间都存在最大差值 3。





题解：

解题关键在于：最大和最小数之间的最大间距一定不小于（max-min）/n-1。


	计算桶的大小：（最大值-最小值）/区间个数，其中...]]></description><category></category></item><item><title><![CDATA[epoll的两种模式：LT ET]]></title><link>https://blog.youkuaiyun.com/Aaron_M/article/details/109865102</link><guid>https://blog.youkuaiyun.com/Aaron_M/article/details/109865102</guid><author>Aaron_M</author><pubDate>Fri, 20 Nov 2020 21:38:32 +0800</pubDate><description><![CDATA[关于epoll的两种工作模式：LT（Level Trigger，电平触发）模式、ET (Edge Trigger，边沿触发) 模式。

采用 LT 工作模式的文件描述符，当 epoll_wait 检测到其上有事件发生并将此事件通知应用程序后，应用程序可以不立即处理该事件。当应用程序下一次再调用epoll_wait时，epoll_wait 还会再次向应用程序通告此事件。
	ET 模式下，当 epoll_wait 检测到事件后立即通知应用程序，应用程序必须立即处理该事件。
ET模式在很大程度上降低了同一个 ep]]></description><category></category></item><item><title><![CDATA[CSAPP_实验二 拆炸弹 汇编知识应用]]></title><link>https://blog.youkuaiyun.com/Aaron_M/article/details/109412756</link><guid>https://blog.youkuaiyun.com/Aaron_M/article/details/109412756</guid><author>Aaron_M</author><pubDate>Mon, 02 Nov 2020 22:44:43 +0800</pubDate><description><![CDATA[CSAPP——实验二 拆炸弹

Phase1



disas phase_1,反汇编 phase_1 函数



在 phase_1函数入口处 设置断点 break phase_1



run 开始运行，输入字符串 “hello”



stepi ，逐条执行命令。寄存器 %rdi、%rsi、%rdx，%rcx、%r8、%r9用作传递函数参数，分别对应第1个参数、第2个参数直到第6个参数。

我们的输入作为调用函数时用到的参数保存在了寄存器%rdi中。对应的地址为 0x603780，用 x/s0x...]]></description><category></category></item><item><title><![CDATA[tensorflow2.0快速安装，Keras快速安装]]></title><link>https://blog.youkuaiyun.com/Aaron_M/article/details/106743991</link><guid>https://blog.youkuaiyun.com/Aaron_M/article/details/106743991</guid><author>Aaron_M</author><pubDate>Sun, 14 Jun 2020 11:39:48 +0800</pubDate><description><![CDATA[pip install tensorflow==2.0.0 -i https://pypi.tuna.tsinghua.edu.cn/simple


]]></description><category></category></item><item><title><![CDATA[Effective C++ 笔记（三）]]></title><link>https://blog.youkuaiyun.com/Aaron_M/article/details/105179239</link><guid>https://blog.youkuaiyun.com/Aaron_M/article/details/105179239</guid><author>Aaron_M</author><pubDate>Wed, 22 Apr 2020 20:52:09 +0800</pubDate><description><![CDATA[第六章：继承与面向对象设计


	条款32：确定你的public继承塑模出is-a关系
	



	避免遮掩继承而来的名字
	


例如：




	条款34：区分接口继承和实现继承
	
接口继承和实现继承不同。在public继承之下，derived class 总是继承base class 的接口

声明一个pure virtual 函数的目的是为了让derived classes只继承函数接口...]]></description><category></category></item><item><title><![CDATA[STL源码剖析(三)]]></title><link>https://blog.youkuaiyun.com/Aaron_M/article/details/105498430</link><guid>https://blog.youkuaiyun.com/Aaron_M/article/details/105498430</guid><author>Aaron_M</author><pubDate>Sun, 19 Apr 2020 17:53:02 +0800</pubDate><description><![CDATA[六、算法


]]></description><category></category></item><item><title><![CDATA[笔记 STL源码剖析(二)]]></title><link>https://blog.youkuaiyun.com/Aaron_M/article/details/105351946</link><guid>https://blog.youkuaiyun.com/Aaron_M/article/details/105351946</guid><author>Aaron_M</author><pubDate>Mon, 13 Apr 2020 21:41:52 +0800</pubDate><description><![CDATA[五 关联式容器

   标准STL关联式容器分为 set（集合）和map（映射表）两大类，以及这两大类的衍生体 multiset,multimap。这些容器的底层机制都是以RB-tree(红黑树)完成。RB-tree 也是一个独立容器，但并不开放给外界使用。

   STL还提供了不在标准规格之列的关联式容器 unordered_map ,unordered_set。

所谓关联式容...]]></description><category></category></item><item><title><![CDATA[STL源码剖析(一)]]></title><link>https://blog.youkuaiyun.com/Aaron_M/article/details/105187783</link><guid>https://blog.youkuaiyun.com/Aaron_M/article/details/105187783</guid><author>Aaron_M</author><pubDate>Mon, 06 Apr 2020 21:00:07 +0800</pubDate><description><![CDATA[STL六大部件
	
容器(container) 、分配器(allocator) 、算法(algorithms) 、迭代器(iterator)、适配器(adaptor) 、仿函数(functor)
]]></description><category></category></item><item><title><![CDATA[LeetCode 1162 地图分析]]></title><link>https://blog.youkuaiyun.com/Aaron_M/article/details/105175314</link><guid>https://blog.youkuaiyun.com/Aaron_M/article/details/105175314</guid><author>Aaron_M</author><pubDate>Sun, 29 Mar 2020 11:59:15 +0800</pubDate><description><![CDATA[题目：

你现在手里有一份大小为N x N 的『地图』（网格）grid，上面的每个『区域』（单元格）都用0和1标记好了。其中0代表海洋，1代表陆地，你知道距离陆地区域最远的海洋区域是是哪一个吗？请返回该海洋区域到离它最近的陆地区域的距离。

我们这里说的距离是『曼哈顿距离』（Manhattan Distance）：(x0, y0) 和(x1, y1)这两个区域之间的距离是...]]></description><category></category></item><item><title><![CDATA[Effective C++笔记（二）]]></title><link>https://blog.youkuaiyun.com/Aaron_M/article/details/105083303</link><guid>https://blog.youkuaiyun.com/Aaron_M/article/details/105083303</guid><author>Aaron_M</author><pubDate>Fri, 27 Mar 2020 22:44:38 +0800</pubDate><description><![CDATA[四、设计与声明


	条款18.让接口容易被使用，不易被误用。
	
欲开发一个“容易被正确使用，不容易被误用”的接口，首先必须考虑客户可能做出什么样的错误。
struct Day
{
explicit Day(int d)//explicit 避免隐式的转换。
:val(d) {}
int val;
};...]]></description><category></category></item><item><title><![CDATA[C++ 内存分配]]></title><link>https://blog.youkuaiyun.com/Aaron_M/article/details/105135364</link><guid>https://blog.youkuaiyun.com/Aaron_M/article/details/105135364</guid><author>Aaron_M</author><pubDate>Fri, 27 Mar 2020 10:50:58 +0800</pubDate><description><![CDATA[一个由C/C++编译程序占用的内存分为以下几个部分：

栈区(stack) 由编译器自动分配释放，存放函数参数值，局部变量值，返回地址等。其操作方式类似于数据结构中栈。栈内存分配运算内置于处理器指令集中，效率很高，但是分配内存容量有限。（在VC6下面，默认的栈空间大小是1M。）
	堆区（heap）由程序员分配释放，也称为动态分配内存。若程序员不释放，程序结束时可能由OS回收。程序在运行时候用ma...]]></description><category></category></item><item><title><![CDATA[Effective C++笔记（一）]]></title><link>https://blog.youkuaiyun.com/Aaron_M/article/details/105073853</link><guid>https://blog.youkuaiyun.com/Aaron_M/article/details/105073853</guid><author>Aaron_M</author><pubDate>Tue, 24 Mar 2020 22:13:34 +0800</pubDate><description><![CDATA[Prefer consts,enums,and inlines to #define （尽量让编译器代替预处理器）
	
 1、const可以定义常量指针、创建class专属常量(有作用域)、可以被封装。

编译器可以对const进行类型安全检查，而对define只进行字符替换，没有类型安全检查，并且在字符替换可能会产生意料不到的错误。

 2、请记住：对于单纯常量，最好以const对...]]></description><category></category></item><item><title><![CDATA[数据流中的中位数(剑指offer第41题)]]></title><link>https://blog.youkuaiyun.com/Aaron_M/article/details/104985874</link><guid>https://blog.youkuaiyun.com/Aaron_M/article/details/104985874</guid><author>Aaron_M</author><pubDate>Fri, 20 Mar 2020 11:32:00 +0800</pubDate><description><![CDATA[题目：设计一个支持以下两种操作的数据结构：

void addNum(int num) - 从数据流中添加一个整数到数据结构中。
	double findMedian() - 返回目前所有元素的中位数。
方法一：利用二分查找元素的插入位置，使所有元素升序排序。

利用lower_bound()，在first和last中的前闭后开区间进行二分查找，返回大于或等于val的第一个元素位置。

时间复杂度...]]></description><category></category></item><item><title><![CDATA[在C++程序中调用被C 编译器编译后的函数，为什么要加extern “C”？]]></title><link>https://blog.youkuaiyun.com/Aaron_M/article/details/104961547</link><guid>https://blog.youkuaiyun.com/Aaron_M/article/details/104961547</guid><author>Aaron_M</author><pubDate>Thu, 19 Mar 2020 10:36:52 +0800</pubDate><description><![CDATA[extern是C/C++语言中表明函数和全局变量作用范围的关键字，该关键字告诉编译器，其声明的函数和变量可以在本模块或其它模块中使用。

通常，在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明。例如，如果模块B欲引用该模块A中定义的全局变量和函数时只需包含模块A的头文件即可。这样，模块B中调用模块A中的函数时，在编译阶段，模块B虽然找不到该函数，但是并不会报错；它...]]></description><category></category></item><item><title><![CDATA[基于SphereFace深度学习的人脸考勤系统（Caffe+windows+OpenCV）]]></title><link>https://blog.youkuaiyun.com/Aaron_M/article/details/104807386</link><guid>https://blog.youkuaiyun.com/Aaron_M/article/details/104807386</guid><author>Aaron_M</author><pubDate>Thu, 12 Mar 2020 16:07:52 +0800</pubDate><description><![CDATA[界面展示

这是主界面。打开摄像头，能进行人脸捕捉并显示在屏幕上，自动连接数据库，显示出对应人脸的信息，并进行上下班打卡。
相关开发工具
数据库：Microsoft SQL Server Management Studio 17
OpenCV：OpenCV-2.4.13
人脸检测库：Libfacedetection

它是由作者ShiqiYu发布在Github上的遵循MIT开源协议的公共库，是一个...]]></description><category></category></item><item><title><![CDATA[动态内存与智能指针（C++ Primer 笔记）]]></title><link>https://blog.youkuaiyun.com/Aaron_M/article/details/104583231</link><guid>https://blog.youkuaiyun.com/Aaron_M/article/details/104583231</guid><author>Aaron_M</author><pubDate>Sat, 29 Feb 2020 22:33:57 +0800</pubDate><description><![CDATA[动态内存与智能指针（C++ Primer 笔记）

每个程序拥有一个内存池，称为“堆”，程序用“堆”来存储动态分配的对象（即在程序运行时分配的对象）。当动态对象不再使用时，必须显示地销毁它们。
在C++11新标准中提供了两种智能指针管理动态对象，智能指针能够自动释放所指向的对象。shared_ptr允许多个指针指向同一个对象，unique_ptr则“独占”所指向的对象，这两个类型都定义在memor...]]></description><category></category></item><item><title><![CDATA[C++__Unordered_map，map，unordered_set, set]]></title><link>https://blog.youkuaiyun.com/Aaron_M/article/details/104546934</link><guid>https://blog.youkuaiyun.com/Aaron_M/article/details/104546934</guid><author>Aaron_M</author><pubDate>Thu, 27 Feb 2020 23:14:36 +0800</pubDate><description><![CDATA[
unordered_map，map，unordered_set, set

都属于关联容器， 容器中的元素 按关键字来保存和查找访问。
map、set 的实现方式是红黑树，采用 &lt; 比较运算符组织元素（有序）。
unordered_map、unordered_set是根据hash函数和关键字类型的==运算符来组织元素。所以不会根据key值对存储的元素进行排序（无序）。在关键字没有明显序关...]]></description><category></category></item></channel></rss>