<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[derlinst的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/derlinst</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; derlinst]]></copyright><item><title><![CDATA[[仍在撰写]QUIC ECHO抓包实践]]></title><link>https://blog.youkuaiyun.com/derlinst/article/details/125184466</link><guid>https://blog.youkuaiyun.com/derlinst/article/details/125184466</guid><author>derlinst</author><pubDate>Wed, 08 Jun 2022 14:48:48 +0800</pubDate><description><![CDATA[QUIC Wireshark Handshake Echo]]></description><category></category></item><item><title><![CDATA[Quic实例【不断更新中】]]></title><link>https://blog.youkuaiyun.com/derlinst/article/details/125089386</link><guid>https://blog.youkuaiyun.com/derlinst/article/details/125089386</guid><author>derlinst</author><pubDate>Wed, 01 Jun 2022 19:58:12 +0800</pubDate><description><![CDATA[Quic Http3]]></description><category></category></item><item><title><![CDATA[Go语言为Json文件生成结构体，并读取信息]]></title><link>https://blog.youkuaiyun.com/derlinst/article/details/110943726</link><guid>https://blog.youkuaiyun.com/derlinst/article/details/110943726</guid><author>derlinst</author><pubDate>Thu, 10 Dec 2020 00:33:38 +0800</pubDate><description><![CDATA[Go读取json配置文件
Go语言内置的json为我们提供了读取json的方式，通过interface的方式进行读取。但是在编写项目时，通常将配置信息存储在json文件之中去，然后希望我们在项目中映射为结构体，通过.运算符方便获取到内容，而不是不断使用内置的json库进行读取对应的内容。
例如如下config.json文件：
{
  "DbSettings": {
    "host": "127.0.0.1",
    "port": 3306,
    "password":"123456",
    ]]></description><category></category></item><item><title><![CDATA[main函数的argc与argv]]></title><link>https://blog.youkuaiyun.com/derlinst/article/details/103098545</link><guid>https://blog.youkuaiyun.com/derlinst/article/details/103098545</guid><author>derlinst</author><pubDate>Sat, 16 Nov 2019 15:27:32 +0800</pubDate><description><![CDATA[main函数可以选择传入参数，如下例：
argc–arguments count
argc–arguments value/vector
字符串数组,用来存放指向字符串参数的指针数组，每个元素指向一个参数，空格分隔参数，长度为argc。数组下标从0开始，
argv[0] 指向程序运行时的全路径名
argv[1] 指向程序在DOS命令中执行程序名后的第一个字符串
argv[2] 指向执行程序名后的第...]]></description><category></category></item><item><title><![CDATA[汇编语言：x86的寻址模式]]></title><link>https://blog.youkuaiyun.com/derlinst/article/details/103064476</link><guid>https://blog.youkuaiyun.com/derlinst/article/details/103064476</guid><author>derlinst</author><pubDate>Thu, 14 Nov 2019 13:39:29 +0800</pubDate><description><![CDATA[This pessage is based on the book namedThe x86 PC Assembly Language,Design,and Interfacing Fifth edition and make a summary to make better understand.
CPU addressing modes：
the way CPU access operands...]]></description><category></category></item><item><title><![CDATA[C++迭代器在链表中的简单实现]]></title><link>https://blog.youkuaiyun.com/derlinst/article/details/103055194</link><guid>https://blog.youkuaiyun.com/derlinst/article/details/103055194</guid><author>derlinst</author><pubDate>Wed, 13 Nov 2019 21:03:51 +0800</pubDate><description><![CDATA[什么是迭代器？

An iterator is any object that, pointing to some element in a range of elements (such as an array or a container), has the ability to iterate through the elements of that range using a set of...]]></description><category></category></item><item><title><![CDATA[双向链表（一）]]></title><link>https://blog.youkuaiyun.com/derlinst/article/details/103020347</link><guid>https://blog.youkuaiyun.com/derlinst/article/details/103020347</guid><author>derlinst</author><pubDate>Tue, 12 Nov 2019 14:35:33 +0800</pubDate><description><![CDATA[双向链表（一）
双向链表是一个常用的数据结构，同时在STL中也占有一席之地，那么实现双向链表是一个很好的练习，那么下面就实现一个最简单的双向链表。
基本设置：

含有next prev指针，value值的node类。
包含若干方法的链表类：其中包含双向链表常用的push_back,pop_back,end(),begin功能

Node节点
首先针对Node节点，就是很常规的声明一个结构体，因为节...]]></description><category></category></item><item><title><![CDATA[顶层与底层const]]></title><link>https://blog.youkuaiyun.com/derlinst/article/details/102992677</link><guid>https://blog.youkuaiyun.com/derlinst/article/details/102992677</guid><author>derlinst</author><pubDate>Sat, 09 Nov 2019 23:23:35 +0800</pubDate><description><![CDATA[顶层与顶层const

首先顶底层const这个概念一般来说是对指针来说的，因为对于指针变量而言，不仅有指针本身（所指变量的地址值），还有所指变量的值。而这个两个值都是可以进行限定const的。
而对于一般的变量，只有一个变量的值所以最多只可以使用一个const限定。而如果用const限定这种非指针变量我们把这种const叫做顶层const。

下面有简单到复杂逐步复习关于const的一些知识

...]]></description><category></category></item><item><title><![CDATA[双向链表+迭代器的C++实现]]></title><link>https://blog.youkuaiyun.com/derlinst/article/details/102961669</link><guid>https://blog.youkuaiyun.com/derlinst/article/details/102961669</guid><author>derlinst</author><pubDate>Thu, 07 Nov 2019 20:17:53 +0800</pubDate><description><![CDATA[双向链表的概述
写链表首先要对链表的构成有一个很好的了解，那么完成一个链表我们需要完成什么呢？



节点的定义
对于双向链表,每一个节点都与其前驱、后继的连接，那么这个链接我们通过指向节点的指针来完成。指向节点的指针在解引用之后就是一个节点对象。


方法的定义
双向链表因为具有头与尾，所以需要实现的方法有：
在末尾插入，删除元素
在链表首部插入、删除元素
可以像访问数组元素一样使用[]运算符对...]]></description><category></category></item><item><title><![CDATA[typedef在类模板中的使用]]></title><link>https://blog.youkuaiyun.com/derlinst/article/details/102959708</link><guid>https://blog.youkuaiyun.com/derlinst/article/details/102959708</guid><author>derlinst</author><pubDate>Thu, 07 Nov 2019 19:50:45 +0800</pubDate><description><![CDATA[类模板与普通类：


一些需要强调一下的知识：
在一个类中使用另一个类的公有成员
能够将另一个类作为返回值类型


同样，普通的类可以做的事模板类也可以做。
#include&lt;iostream&gt;
using namespace std;
struct A {
 int num;
};
class B {
 //这里给类A声明了一个别名。
 //只要位于同样一个作用域中类之间的publi...]]></description><category></category></item><item><title><![CDATA[C++泛型中的类模板参数]]></title><link>https://blog.youkuaiyun.com/derlinst/article/details/102917442</link><guid>https://blog.youkuaiyun.com/derlinst/article/details/102917442</guid><author>derlinst</author><pubDate>Thu, 07 Nov 2019 17:33:22 +0800</pubDate><description><![CDATA[使用类参数的模板参数
template&lt;typename T&gt;
struct S_Tmp
{	  
  T a;
  void Show() {
  cout &lt;&lt; "This is S_Tmp" &lt;&lt; endl;
 }};
template&lt;template&lt;typename S&gt;class T&gt;
struct MyTest{
  T&...]]></description><category></category></item><item><title><![CDATA[C# 泛型总结]]></title><link>https://blog.youkuaiyun.com/derlinst/article/details/102566556</link><guid>https://blog.youkuaiyun.com/derlinst/article/details/102566556</guid><author>derlinst</author><pubDate>Tue, 15 Oct 2019 14:51:43 +0800</pubDate><description><![CDATA[泛型
很详细的对泛型的介绍
简要的总结下（基于Cpp刚刚学习完STL）
C#与Cpp中泛型的不同于联系

cpp中的泛型算法
在Cpp中，泛型算法是较为熟悉的一块，泛型算法定义了一系列不针对特定容器进行操作的算法成为泛型算法。例如可以对vector,deque,list等进行操作的sort()算法。
泛型算法的核心：不针对特定容器，而是适用于大部分普遍容器。
C#中的泛型
C#是一门成熟的面向对象...]]></description><category></category></item><item><title><![CDATA[#11 乘最多水的容器]]></title><link>https://blog.youkuaiyun.com/derlinst/article/details/102495939</link><guid>https://blog.youkuaiyun.com/derlinst/article/details/102495939</guid><author>derlinst</author><pubDate>Fri, 11 Oct 2019 10:49:05 +0800</pubDate><description><![CDATA[自己写的代码
这道题思路简单，两重循环加遍历即可，但是这么搞效率着实低…
class Solution {
public:
 int maxArea(vector&lt;int&gt;&amp; height) {
  	int n = height.size();
  	int temp = 0, max = 0,min;
  	for (int i = 0; i &lt; n - 1; i++...]]></description><category></category></item><item><title><![CDATA[#9 正则表达式]]></title><link>https://blog.youkuaiyun.com/derlinst/article/details/102468153</link><guid>https://blog.youkuaiyun.com/derlinst/article/details/102468153</guid><author>derlinst</author><pubDate>Wed, 09 Oct 2019 23:27:44 +0800</pubDate><description><![CDATA[自己写的代码
思路：

使用两个变量指示两个不同的string
先检查元素是否相等，是否为特殊字符* 与.
之后使用循环设置在碰到上述两字符之后开始循环检测
我理解错了正则表达式中.的用法！！！是任意匹配一个字符，而不是匹配前面的一个字符！！！
.字符匹配一个任意的字符
*字符匹配前面0个或者多个字符（可以匹配0个一定要记好）
但是吧，我发现我自己写的代码经常栈溢出堆溢出。。。说明对于数组下标使用...]]></description><category></category></item><item><title><![CDATA[#9 回文子串]]></title><link>https://blog.youkuaiyun.com/derlinst/article/details/102465673</link><guid>https://blog.youkuaiyun.com/derlinst/article/details/102465673</guid><author>derlinst</author><pubDate>Wed, 09 Oct 2019 17:03:42 +0800</pubDate><description><![CDATA[一半判别法
int revertedNumber = 0;
while (x &gt; revertedNumber) {
 	revertedNumber = revertedNumber * 10 + x % 10;
 	x /= 10;
}
return x == revertedNumber || x == revertedNumber/10;

回文数是偶数位：那么循环到正中间的时候剩下...]]></description><category></category></item><item><title><![CDATA[#8 字符串转换]]></title><link>https://blog.youkuaiyun.com/derlinst/article/details/102459398</link><guid>https://blog.youkuaiyun.com/derlinst/article/details/102459398</guid><author>derlinst</author><pubDate>Wed, 09 Oct 2019 15:32:35 +0800</pubDate><description><![CDATA[事实上

]]></description><category></category></item><item><title><![CDATA[#7 字符反转的溢出问题]]></title><link>https://blog.youkuaiyun.com/derlinst/article/details/102457497</link><guid>https://blog.youkuaiyun.com/derlinst/article/details/102457497</guid><author>derlinst</author><pubDate>Wed, 09 Oct 2019 12:43:00 +0800</pubDate><description><![CDATA[字符反转的溢出处理
把输入的一个数字翻转是一个很简单的问题，算法也很简单在这里需要讨论的是如何处理溢出。

预备知识：


C/C++中内置了一些设定的数
INT_MAX与INT_MIN,这些参数默认了int类型的数据最大值与最小值究竟是多少，在需要的时候可以直接使用。

 if (rx&gt;INT_MAX/10 || (rx == INT_MAX / 10 &amp;&amp; pop &gt...]]></description><category></category></item><item><title><![CDATA[#6 Z字形变换]]></title><link>https://blog.youkuaiyun.com/derlinst/article/details/102456030</link><guid>https://blog.youkuaiyun.com/derlinst/article/details/102456030</guid><author>derlinst</author><pubDate>Wed, 09 Oct 2019 10:55:11 +0800</pubDate><description><![CDATA[根据移动的思路来建立模型
首先这里的z字形其实就是N字形，那么就按照移动的思路来构造解答：

每行取一个元素然后下移一行继续存储，然后这样上下移动。要求按行输出那么就创建二维数组来存储第几行与此行的元素。
源字符串一次读一个然后下移或上移一行继续输出字符，那么根据这个思路设置一个变量控制数组的变化，以数组仿照真实移动来存储元素。

class Solution {
public:
  string...]]></description><category></category></item><item><title><![CDATA[#5 最长回文子串]]></title><link>https://blog.youkuaiyun.com/derlinst/article/details/102241402</link><guid>https://blog.youkuaiyun.com/derlinst/article/details/102241402</guid><author>derlinst</author><pubDate>Mon, 07 Oct 2019 23:11:13 +0800</pubDate><description><![CDATA[我写的代码：
怎么说吧，自己写的一点算法都没有，完全是暴力穷举，而且没有丝毫的美学存在的，还格外的费事！
这么求解时间消耗的太高，很容易就出现超过规定的时间。这种代码很明显的反应了我关于解决问题的方法（????暴力穷举法）这些东西还是太陌生，没有解决问题的概念。
class Solution {
public:
 string longestPalindrome(string s) {
  int j ...]]></description><category></category></item><item><title><![CDATA[#3 无重复字符的最长字串]]></title><link>https://blog.youkuaiyun.com/derlinst/article/details/102230903</link><guid>https://blog.youkuaiyun.com/derlinst/article/details/102230903</guid><author>derlinst</author><pubDate>Sun, 06 Oct 2019 15:43:59 +0800</pubDate><description><![CDATA[渣渣写的代码这次编译都通过不了。。。
但是根据代码执行窗口来说输出结果是对的，然后思路也比较清晰
我写的代码。。。
核心思路：

使用三个循环，第一个循环控制子串的起始位置，然后第二个循环开始完成子串尾元素的移动，第三个循环开始遍历子串检查尾元素与前面任意一个元素是否重合
设置变量存储，一个用于循环内存储另一个用于存储每个循环比较之后得出的比较大的结果。这里是循环内常用的思路。


思路其实就是这...]]></description><category></category></item></channel></rss>