<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Kevin__Mei的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Kevin__Mei</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Kevin__Mei]]></copyright><item><title><![CDATA[Lab2_Simple Shell_2020]]></title><link>https://blog.youkuaiyun.com/Kevin__Mei/article/details/129393019</link><guid>https://blog.youkuaiyun.com/Kevin__Mei/article/details/129393019</guid><author>Kevin__Mei</author><pubDate>Tue, 07 Mar 2023 22:10:41 +0800</pubDate><description><![CDATA[这里冒号后面需要加上空格，第一次没加上空格，死活匹配不过去，发现后被自己气死；案例有超时时间，31s的时候就time out了，鉴于我ubuntu14,还是虚拟机，碍于性能问题总是跑超时，其实答案是对的，修改gradelib.py, 增加了判题的超时时间，就过去了；$ export PATH=$PATH:/home/moocos/riscv-gnu-toolchain/bin/bin //路径可以替换为你自己的路径//然后编译xv6$ make...]]></description><category></category></item><item><title><![CDATA[二叉树的四种遍历算法_递归和迭代的实现]]></title><link>https://blog.youkuaiyun.com/Kevin__Mei/article/details/116864300</link><guid>https://blog.youkuaiyun.com/Kevin__Mei/article/details/116864300</guid><author>Kevin__Mei</author><pubDate>Sat, 15 May 2021 21:57:37 +0800</pubDate><description><![CDATA[写在前面：

二叉树的四种遍历方式，leetcode有对应的题目，题号为：94，102，144，145；大家看完可以去拿下这四道题；
迭代算法参考学堂在线课程：清华-数据结构-邓俊晖老师；代码略做修改适应leetcode判题系统；

二叉树的先序遍历：
定义：如果二叉树为空，则返回，否则先访问根结点，然后先序遍历左子树，再先序遍历右子树；
递归算法版本：
// 根据定义很容易写出递归版本算法
vector&lt;int&gt; preorderTraversal(TreeNode* root) {
  ve]]></description><category></category></item><item><title><![CDATA[MIT 6.S081 Lab: Xv6 and Unix utilities_xv6_2019]]></title><link>https://blog.youkuaiyun.com/Kevin__Mei/article/details/115956012</link><guid>https://blog.youkuaiyun.com/Kevin__Mei/article/details/115956012</guid><author>Kevin__Mei</author><pubDate>Wed, 21 Apr 2021 15:15:38 +0800</pubDate><description><![CDATA[lab1 实验目的：熟悉xv6系统和它的系统调用
一. 实验前准备
按计划，先阅读下面三项


介绍： https://pdos.csail.mit.edu/6.828/2019/lec/l-overview.txt

大体意思是：6.S081专注于系统调用接口的设计和实现。
我们将研究UNIX（Linux，Mac，POSIX和xv6）。
让我们看看程序如何使用系统调用接口。



例子： https://pdos.csail.mit.edu/6.828/2019/lec/l-overview/;

实例 ]]></description><category></category></item><item><title><![CDATA[Lab2_Simple Shell_xv6_2019]]></title><link>https://blog.youkuaiyun.com/Kevin__Mei/article/details/114583175</link><guid>https://blog.youkuaiyun.com/Kevin__Mei/article/details/114583175</guid><author>Kevin__Mei</author><pubDate>Tue, 09 Mar 2021 14:59:34 +0800</pubDate><description><![CDATA[Lab2: 实验目的：学习unix的shell如何使用系统调用
一. 实验准备
Your job is to write a simple shell for xv6. It should be able to run commands with arguments, handle input and output redirection, and set up two-element pipelines. Your shell should act like the xv6 shell sh for th]]></description><category></category></item><item><title><![CDATA[MIT 6.S081 Lab: Xv6 and Unix utilities]]></title><link>https://blog.youkuaiyun.com/Kevin__Mei/article/details/114158655</link><guid>https://blog.youkuaiyun.com/Kevin__Mei/article/details/114158655</guid><author>Kevin__Mei</author><pubDate>Sat, 27 Feb 2021 08:19:32 +0800</pubDate><description><![CDATA[lab1 实验目的：熟悉xv6系统和它的系统调用
一. 实验前准备
按计划，先阅读下面三项


介绍： https://pdos.csail.mit.edu/6.828/2019/lec/l-overview.txt

大体意思是：6.S081专注于系统调用接口的设计和实现。
我们将研究UNIX（Linux，Mac，POSIX和xv6）。
让我们看看程序如何使用系统调用接口。



例子： https://pdos.csail.mit.edu/6.828/2019/lec/l-overview/;

实例 ]]></description><category></category></item><item><title><![CDATA[Unicode中的数学符号]]></title><link>https://blog.youkuaiyun.com/Kevin__Mei/article/details/112919384</link><guid>https://blog.youkuaiyun.com/Kevin__Mei/article/details/112919384</guid><author>Kevin__Mei</author><pubDate>Thu, 21 Jan 2021 11:19:06 +0800</pubDate><description><![CDATA[本文转自：http://www.dwenzhao.cn/lesson/htmluse/unicodemath.html


  数学、物理及一些科技领域使用了很多特殊符号，Unicode码中都有对应的码位，列出其码表，以方便使用。
  1. 数字符号Number Forms：
  
    
      Unicode 
      0 
      1 
      2 
      3 
      4 
      5 
      6 
      7 
      8 
      9 
    ]]></description><category></category></item><item><title><![CDATA[函数指针在全局函数和在类内函数使用的区别]]></title><link>https://blog.youkuaiyun.com/Kevin__Mei/article/details/112795600</link><guid>https://blog.youkuaiyun.com/Kevin__Mei/article/details/112795600</guid><author>Kevin__Mei</author><pubDate>Mon, 18 Jan 2021 22:07:26 +0800</pubDate><description><![CDATA[我们要做的是：将一个add函数作为另一个process函数的参数, 并在process函数里调用add；这个我们分别在全局函数中实现和在类中实现，看看两者有什么区别。
函数指针
先联想下，什么是函数指针和什么时候我们需要用到函数指针？
我的第一反应，函数指针，就是指向函数的指针，类比int* p //p是指向int的指针，那么函数指针 它的类型是什么，它应该怎么定义；
这时候我们想想什么时候用到函数指针，我的第一反应两个地方：
a. dll 动态库加载的时候 b. 回调函数的时候
函数指针 它的类型是什么，]]></description><category></category></item><item><title><![CDATA[unicode字符集详解，中文字符范围，标点符号范围等]]></title><link>https://blog.youkuaiyun.com/Kevin__Mei/article/details/112778960</link><guid>https://blog.youkuaiyun.com/Kevin__Mei/article/details/112778960</guid><author>Kevin__Mei</author><pubDate>Mon, 18 Jan 2021 14:15:36 +0800</pubDate><description><![CDATA[经常要使用过滤中文，过滤标点符号之类的正则表达式，这里对查到的字符集返回做个汇总
拉丁文字符
0020-007E，包括常见的数字，英文a-z,A-Z, 一些标点符号，具体参考：https://www.runoob.com/charsets/ref-utf-basic-latin.html
完整的CJK Unicode范围（5.0版）
转自 https://blog.oasisfeng.com/2006/10/19/full-cjk-unicode-range/

因为FontRouter新版本开发的需要，在]]></description><category></category></item><item><title><![CDATA[unordered_map的哈希HASH重载——举例unordered_map与pair联合使用]]></title><link>https://blog.youkuaiyun.com/Kevin__Mei/article/details/109881640</link><guid>https://blog.youkuaiyun.com/Kevin__Mei/article/details/109881640</guid><author>Kevin__Mei</author><pubDate>Sat, 21 Nov 2020 00:13:41 +0800</pubDate><description><![CDATA[有些时候，为了图省力，我们没准会这样的调用一个函数
unordered_map&lt; pair&lt;int, int&gt;, int &gt; mp;

但是很显然的是，这样的写法是会报错的，因为pair还没有HASH键值。
error: call to implicitly-deleted default constructor of 'std::__1::hash&lt;std::__1::pair&lt;int, int&gt; &gt;'
        : _Hash() {}

会返回这样]]></description><category></category></item><item><title><![CDATA[C#的using语句]]></title><link>https://blog.youkuaiyun.com/Kevin__Mei/article/details/109680121</link><guid>https://blog.youkuaiyun.com/Kevin__Mei/article/details/109680121</guid><author>Kevin__Mei</author><pubDate>Fri, 13 Nov 2020 18:18:56 +0800</pubDate><description><![CDATA[C#’s using statement provides a syntactic shortcut for calling Dispose on
objects that implement IDisposable, using a try/finally block. For example:
C#的using语句提供了调用Dispose on的语法快捷方式， 相当于使用try/finally块实现IDisposable的对象。例如：
using (FileStream fs = new FileStr]]></description><category></category></item><item><title><![CDATA[ribbon的几种实现方式]]></title><link>https://blog.youkuaiyun.com/Kevin__Mei/article/details/109621708</link><guid>https://blog.youkuaiyun.com/Kevin__Mei/article/details/109621708</guid><author>Kevin__Mei</author><pubDate>Wed, 11 Nov 2020 14:54:40 +0800</pubDate><description><![CDATA[office从2007开始菜单栏变成ribbon效果，引起较大的潮流，以致后面windows连文件夹布局都是ribbon效果；这边主要找了下ribbon的实现方式一些资料，收费的商业控件暂不考虑，主要看看开源的有没有好用的控件可以借鉴：
基于wpf的版本
微软官网的说明，在2010年给出了额外的vs安装包，安装后建立模板完成ribbon开发，但目前一直没有更新维护
https://docs.microsoft.com/en-us/previous-versions/ff799534(v=vs.110)
基于]]></description><category></category></item><item><title><![CDATA[C# 检测url的准确性]]></title><link>https://blog.youkuaiyun.com/Kevin__Mei/article/details/108625106</link><guid>https://blog.youkuaiyun.com/Kevin__Mei/article/details/108625106</guid><author>Kevin__Mei</author><pubDate>Wed, 16 Sep 2020 16:30:52 +0800</pubDate><description><![CDATA[一个代码片段，检测url是否正常，通过Uri 类的构造函数进行，这里需要注意的是，.net4 和.net4.5的报错不一样；.net4 创建非法的url对象后并不直接报错，访问具体位置才会报错；。net4.5会直接报错；
try
{
    string target = "mailto:jzhh@xju.%20edu.cn"; // 异常的url
    // string target = "https://www.baidu.com"; // 正常的url
    Uri uri = new Uri(]]></description><category></category></item><item><title><![CDATA[C#线程间操作无效: 从不是创建控件XX的线程访问它]]></title><link>https://blog.youkuaiyun.com/Kevin__Mei/article/details/106763231</link><guid>https://blog.youkuaiyun.com/Kevin__Mei/article/details/106763231</guid><author>Kevin__Mei</author><pubDate>Mon, 15 Jun 2020 15:18:22 +0800</pubDate><description><![CDATA[前些天做的要使用到线程的项目，现在和大家分享一下感受！
以下面小列子为例，给出这个问题的解决办法。下面的列子是以一个计数器为列讲解的。
public Form1()
{
	InitializeComponent();
}

private void btnStart_Click(object sender, EventArgs e)
{
	// 创建线程
	Thread newThread = new Thread(new ThreadStart(Count)); 
	newThread.Start();
]]></description><category></category></item><item><title><![CDATA[15_3Sum 求三数之和]]></title><link>https://blog.youkuaiyun.com/Kevin__Mei/article/details/106714110</link><guid>https://blog.youkuaiyun.com/Kevin__Mei/article/details/106714110</guid><author>Kevin__Mei</author><pubDate>Fri, 12 Jun 2020 13:44:29 +0800</pubDate><description><![CDATA[求三数之和
给你一个包含 n 个整数的数组 nums，判断 nums 中是否存在三个元素 a，b，c ，使得 a + b + c = 0 ？请你找出所有满足条件且不重复的三元组。
注意：答案中不可以包含重复的三元组。
示例：
给定数组 nums = [-1, 0, 1, 2, -1, -4]，
满足要求的三元组集合为：
[
[-1, 0, 1],
[-1, -1, 2]
]
解题思路：
如果是数组是有序的，则可以用双指针以线性时间复杂度来遍历所有满足题意得两个数组合；
现对原数组进行排序 sort(num.]]></description><category></category></item><item><title><![CDATA[riscv-gnu-toolchain 下载编译 及 xv6 os编译试运行]]></title><link>https://blog.youkuaiyun.com/Kevin__Mei/article/details/106596638</link><guid>https://blog.youkuaiyun.com/Kevin__Mei/article/details/106596638</guid><author>Kevin__Mei</author><pubDate>Sun, 07 Jun 2020 01:30:52 +0800</pubDate><description><![CDATA[这篇文章对应MIT_OS 6.S081官方计划的工具准备篇https://pdos.csail.mit.edu/6.828/2019/tools.html，万事开头难，记录好搭环境的每一步
下载riscv-gnu-toolchain


安装virtualBox和unbuntu，我安装的是virtualBox 6.0.10, unbuntu 是14.04 版本


下载一些安装包进行工具链的编译：
$ sudo apt-get install autoconf automake autotools-dev ]]></description><category></category></item><item><title><![CDATA[10_Regular Expression Matching 动态规划之正则表达]]></title><link>https://blog.youkuaiyun.com/Kevin__Mei/article/details/106589081</link><guid>https://blog.youkuaiyun.com/Kevin__Mei/article/details/106589081</guid><author>Kevin__Mei</author><pubDate>Sat, 06 Jun 2020 16:04:12 +0800</pubDate><description><![CDATA[动态规划之正则表达
本文转载于：https://github.com/labuladong/fucking-algorithm/blob/master/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E7%B3%BB%E5%88%97/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E4%B9%8B%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE.md
自己加了C++部分的代码，还有些个人注释；
正则表达式匹配是一个很精妙的算法，而]]></description><category></category></item><item><title><![CDATA[c++ foreach 用法，无法修改循环变量的内容]]></title><link>https://blog.youkuaiyun.com/Kevin__Mei/article/details/106465921</link><guid>https://blog.youkuaiyun.com/Kevin__Mei/article/details/106465921</guid><author>Kevin__Mei</author><pubDate>Mon, 01 Jun 2020 09:10:47 +0800</pubDate><description><![CDATA[c++ foreach 用法，无法修改循环变量的内容
// colomn resize后不会保存，循环执行完毕后mem[i]的size仍为0
for (vector&lt;bool&gt; colomn : mem)
{
	colomn.resize(n + 1);
	for (bool flag : colomn)
	{
		flag = false;
	}
}
// 这个才能mem[i] resize才能正常
for (int i = 0; i &lt; mem.size(); i++)
{
	mem[]]></description><category></category></item><item><title><![CDATA[动态规划详解]]></title><link>https://blog.youkuaiyun.com/Kevin__Mei/article/details/106327267</link><guid>https://blog.youkuaiyun.com/Kevin__Mei/article/details/106327267</guid><author>Kevin__Mei</author><pubDate>Mon, 25 May 2020 10:14:41 +0800</pubDate><description><![CDATA[动态规划
动态规划问题的一般形式就是求最值。动态规划其实是运筹学的一种最优化方法，只不过在计算机问题上应用比较多，比如说让你求最长递增子序列呀，最小编辑距离呀等等。


动态规划的穷举有特殊之处，这类问题存在[重叠子问题]，如果包里穷举的话效率极其低下，所以需要[备忘录]或者[DP table]来优化穷举过程，避免不必要的计算。


而且，动态规划问题一定会具备[最优子结构]，才能通过子问题的最值得到原问题的最值；


问题千变万化，穷举所有可行解并不是一件容易的事，只有列出正确的[状态转移方程]才能正确穷]]></description><category></category></item><item><title><![CDATA[python 安装requests库]]></title><link>https://blog.youkuaiyun.com/Kevin__Mei/article/details/105710404</link><guid>https://blog.youkuaiyun.com/Kevin__Mei/article/details/105710404</guid><author>Kevin__Mei</author><pubDate>Thu, 23 Apr 2020 16:13:03 +0800</pubDate><description><![CDATA[import requests  ModuleNotFoundError: No module named ‘requests’
原因：没有导入requests库
解决办法：
开始菜单选择运行，输入cmd运行，然后cd命令进入到python安装目录下的Scripts文件中，
然后输入pip install requests,等安装成功即可
如果上面的还是不能解决你的问题，试试下面的办法吧，
pip...]]></description><category></category></item><item><title><![CDATA[pugixml使用示例及注意点]]></title><link>https://blog.youkuaiyun.com/Kevin__Mei/article/details/105627643</link><guid>https://blog.youkuaiyun.com/Kevin__Mei/article/details/105627643</guid><author>Kevin__Mei</author><pubDate>Mon, 20 Apr 2020 09:42:03 +0800</pubDate><description><![CDATA[一.简介
pugixml的官方主页为：http://pugixml.org/
pugixml个人觉得目前是C++处理xml里最方便，速度也最快的，在生成xml方面，300个xml文件，pugixml只用6s,对比rapidxml用时60+s，效率高了10倍，很nice;
然后它的通用优点，列举下：
它很轻量，只有三个文件（pugiconfig.hpp   pugixml.cpp  pugixml....]]></description><category></category></item></channel></rss>