<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[神秘的火柴人的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/zxt_1</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; zxt_1]]></copyright><item><title><![CDATA[VS上查看某个类中各个成员变量所占用的内存空间]]></title><link>https://blog.youkuaiyun.com/zxt_1/article/details/143870738</link><guid>https://blog.youkuaiyun.com/zxt_1/article/details/143870738</guid><author>zxt_1</author><pubDate>Mon, 18 Nov 2024 21:30:00 +0800</pubDate><description><![CDATA[例子
class CTest
{
    char a;
    int b;
    double c;
};

int main()
{
    cout &lt;&lt; sizeof(CTest) &lt;&lt; endl;

    return 0;
}


输入命令 cl ConsoleApplication1.cpp /d1reportSingleClassLayoutCTes...]]></description><category></category></item><item><title><![CDATA[【QA系列】程序的指令和数据为啥分开存放？]]></title><link>https://blog.youkuaiyun.com/zxt_1/article/details/143842141</link><guid>https://blog.youkuaiyun.com/zxt_1/article/details/143842141</guid><author>zxt_1</author><pubDate>Sun, 17 Nov 2024 22:06:00 +0800</pubDate><description><![CDATA[指令区域对于进程来说是只读的，可以防止程序指令被修改
指令区和数据区域分离提高程序局部性，提高缓存命中率
程序中运行多个程序的副本时，指令都是一样的，在内存中只需要保存一份就行了，节省空间。


...]]></description><category></category></item><item><title><![CDATA[229. 求众数 II]]></title><link>https://blog.youkuaiyun.com/zxt_1/article/details/120190086</link><guid>https://blog.youkuaiyun.com/zxt_1/article/details/120190086</guid><author>zxt_1</author><pubDate>Wed, 08 Sep 2021 22:17:59 +0800</pubDate><description><![CDATA[思路：

利用两个变量分别保存可能满足条件的数
并记录其对应的个数
若当前数与两个变量保存的数都不同，则变量对应的个数都减1



拓展：找出出现次数超过 [ n/k ] 次：用k-1个变量保存可能满足条件的数及对应的个数

class Solution {
public:
    vector&lt;int&gt; majorityElement(vector&lt;int&gt;&amp; nums) {

        int r1, r2, c1 = 0, c2 = 0; //r1，r2：两个..]]></description><category></category></item><item><title><![CDATA[148. 排序链表]]></title><link>https://blog.youkuaiyun.com/zxt_1/article/details/120147606</link><guid>https://blog.youkuaiyun.com/zxt_1/article/details/120147606</guid><author>zxt_1</author><pubDate>Mon, 06 Sep 2021 23:45:05 +0800</pubDate><description><![CDATA[思路：归并排序

自底向上：从长度为1开始，两两归并
每次长度*2


/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x..]]></description><category></category></item><item><title><![CDATA[169. 多数元素]]></title><link>https://blog.youkuaiyun.com/zxt_1/article/details/120123434</link><guid>https://blog.youkuaiyun.com/zxt_1/article/details/120123434</guid><author>zxt_1</author><pubDate>Sun, 05 Sep 2021 23:08:55 +0800</pubDate><description><![CDATA[思路：记录保存数及其次数；
①如果当前数与保存数不一致，次数减一，次数减为0，则保存当前数
②如果当前数与保存数一致，次数加一

class Solution {
public:
    int majorityElement(vector&lt;int&gt;&amp; nums) {

        int r = nums[0], c = 1;
        for(int i=1; i&lt;nums.size(); i++)
        {
            if(r != nu..]]></description><category></category></item><item><title><![CDATA[179. 最大数]]></title><link>https://blog.youkuaiyun.com/zxt_1/article/details/120110181</link><guid>https://blog.youkuaiyun.com/zxt_1/article/details/120110181</guid><author>zxt_1</author><pubDate>Sun, 05 Sep 2021 09:08:30 +0800</pubDate><description><![CDATA[179. 最大数


思路：
自定义排序规则：a &lt; b  等价于 to_string(a)+to_string(b) &lt; to_string(b)+to_string(a)

class Solution {
public:
    string largestNumber(vector&lt;int&gt;&amp; nums) {

        sort(nums.begin(), nums.end(), cmp);

        string s;
        for(aut]]></description><category></category></item><item><title><![CDATA[MVVM简单应用实践（二）]]></title><link>https://blog.youkuaiyun.com/zxt_1/article/details/108326565</link><guid>https://blog.youkuaiyun.com/zxt_1/article/details/108326565</guid><author>zxt_1</author><pubDate>Mon, 31 Aug 2020 18:05:09 +0800</pubDate><description><![CDATA[上一小节已经通过自行实现Commands完成预期功能。但目前仍存在如下几点缺陷：

对应“加、减、乘、除”不同的操作，分别实现了PlusCommand、MinusCommand、MultiplicationCommand、DivisionCommand。而这四种操作对应的代码大体相同。
xxxCommand与CaculatorVM耦合度高，比如修改了CaculatorVM中的Add方法，则要去修改PlusCommand内Execute方法。

可以通过内置委托（Predicate、Action、Func）进]]></description><category></category></item><item><title><![CDATA[MVVM简单应用实践（一）]]></title><link>https://blog.youkuaiyun.com/zxt_1/article/details/108325521</link><guid>https://blog.youkuaiyun.com/zxt_1/article/details/108325521</guid><author>zxt_1</author><pubDate>Mon, 31 Aug 2020 18:00:32 +0800</pubDate><description><![CDATA[0. MVVM介绍及前置知识

上图来自维基。组成要素：

Model：表示具体数据内容（represents real state content）
View：界面展示
View Model：View的抽象，提供公共属性和命令（an abstraction of the view exposing public properties and commands）
Binder：（a view directly binds to properties on the view model to send and]]></description><category></category></item><item><title><![CDATA[图论系列（六）——图的广度优先遍历及应用2]]></title><link>https://blog.youkuaiyun.com/zxt_1/article/details/105194646</link><guid>https://blog.youkuaiyun.com/zxt_1/article/details/105194646</guid><author>zxt_1</author><pubDate>Mon, 30 Mar 2020 17:05:32 +0800</pubDate><description><![CDATA[1. 二分图检测
import java.util.LinkedList;
import java.util.Queue;

public class BipartitionDetection {

    private Graph G;

    private boolean[] visited;
    private int[] colors;		//colors[i]：节点i的颜色:0...]]></description><category></category></item><item><title><![CDATA[图论系列（五）——图的广度优先遍历及应用1]]></title><link>https://blog.youkuaiyun.com/zxt_1/article/details/104554333</link><guid>https://blog.youkuaiyun.com/zxt_1/article/details/104554333</guid><author>zxt_1</author><pubDate>Sun, 29 Mar 2020 21:15:59 +0800</pubDate><description><![CDATA[1. 树的广度优先遍历与图的广度优先遍历对比


]]></description><category></category></item><item><title><![CDATA[图论系列（四）——图的深度优先遍历的应用2]]></title><link>https://blog.youkuaiyun.com/zxt_1/article/details/104331201</link><guid>https://blog.youkuaiyun.com/zxt_1/article/details/104331201</guid><author>zxt_1</author><pubDate>Sat, 15 Feb 2020 21:06:07 +0800</pubDate><description><![CDATA[1. 图的环检测

无向图有环：

当前点的邻接节点已经被访问过
被访问过的邻接节点不是当前节点的上个访问


import java.util.ArrayList;
import java.util.Collections;

public class CycleDetection {

    private Graph G;
    private boolean[] visited;
  ...]]></description><category></category></item><item><title><![CDATA[图论系列（三）——图的深度优先遍历的应用1]]></title><link>https://blog.youkuaiyun.com/zxt_1/article/details/104264451</link><guid>https://blog.youkuaiyun.com/zxt_1/article/details/104264451</guid><author>zxt_1</author><pubDate>Sat, 15 Feb 2020 21:04:19 +0800</pubDate><description><![CDATA[1. 联通分量

统计一个图中联通分量个数
判断两点是否联通
求每个联通分量中包含点编号


import java.util.ArrayList;

//Connected Component —— 联通分量
public class CC {

    private Graph G;
    private int[] visited;          //将 boolean型改为 int...]]></description><category></category></item><item><title><![CDATA[图论系列（二）——图的深度优先遍历]]></title><link>https://blog.youkuaiyun.com/zxt_1/article/details/104224914</link><guid>https://blog.youkuaiyun.com/zxt_1/article/details/104224914</guid><author>zxt_1</author><pubDate>Sat, 08 Feb 2020 20:26:23 +0800</pubDate><description><![CDATA[1. 树的深度优先遍历与图的深度优先遍历对比

2. 代码实现（递归版）
import java.util.ArrayList;

public class GraphDFS {

    private Graph G;
    private boolean[] visited;
    private ArrayList&lt;Integer&gt; order = new ArrayLis...]]></description><category></category></item><item><title><![CDATA[图论系列（一）——图的基本概念和基本表示]]></title><link>https://blog.youkuaiyun.com/zxt_1/article/details/104175826</link><guid>https://blog.youkuaiyun.com/zxt_1/article/details/104175826</guid><author>zxt_1</author><pubDate>Sat, 08 Feb 2020 14:53:23 +0800</pubDate><description><![CDATA[1. 图的分类

2. 图的基本概念（联通分量、联通图的生成树）


3. 图的基本表示（无向无权图为例）


实现代码：

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;

public class AdjMatrix {
    priv...]]></description><category></category></item><item><title><![CDATA[算法基础——高精度加、减、乘、除]]></title><link>https://blog.youkuaiyun.com/zxt_1/article/details/104110763</link><guid>https://blog.youkuaiyun.com/zxt_1/article/details/104110763</guid><author>zxt_1</author><pubDate>Mon, 03 Feb 2020 11:54:55 +0800</pubDate><description><![CDATA[1. 思想
大整数——将数字从个位开始存储

高精度乘法：


高精度除法：

2. 模板

高精度加法

#include&lt;iostream&gt;
#include&lt;vector&gt;

using namespace std;

vector&lt;int&gt; add(vector&lt;int&gt;&amp; v1, vector&lt;int&gt;&amp; v2)...]]></description><category></category></item><item><title><![CDATA[算法基础——二分]]></title><link>https://blog.youkuaiyun.com/zxt_1/article/details/104103000</link><guid>https://blog.youkuaiyun.com/zxt_1/article/details/104103000</guid><author>zxt_1</author><pubDate>Tue, 28 Jan 2020 22:26:20 +0800</pubDate><description><![CDATA[1. 思想
2. 模板
3. 应用


数的范围


题目链接
#include &lt;iostream&gt;

using namespace std;

const int N = 1e6+10;
int arr[N];

int main()
{
    int n, q;
    scanf("%d %d", &amp;n, &amp;q);
    
    for(int i=0;...]]></description><category></category></item><item><title><![CDATA[算法基础——归并排序]]></title><link>https://blog.youkuaiyun.com/zxt_1/article/details/104093721</link><guid>https://blog.youkuaiyun.com/zxt_1/article/details/104093721</guid><author>zxt_1</author><pubDate>Mon, 27 Jan 2020 20:23:16 +0800</pubDate><description><![CDATA[1. 思想

分治法：

选择中间点
递归排序左边、右边
归并


2. 模板
#include &lt;iostream&gt;

using namespace std;

const int N = 1e6+10;
int arr[N],tmp[N];

void mergeSort(int *arr, int l, int r)
{
    if(l &gt;= r)  return ;
...]]></description><category></category></item><item><title><![CDATA[算法基础——快速排序]]></title><link>https://blog.youkuaiyun.com/zxt_1/article/details/104086846</link><guid>https://blog.youkuaiyun.com/zxt_1/article/details/104086846</guid><author>zxt_1</author><pubDate>Sun, 26 Jan 2020 21:45:18 +0800</pubDate><description><![CDATA[1. 思想

分治法

选择分界点（arr[l]、arr[mid]、arr[r]）
调整数组区间（左半部分 &lt; 分界点，右半部分 &gt; 分界点）
递归处理左半部分，递归处理右半部分



2. 模版
#include &lt;iostream&gt;
#include &lt;algorithm&gt;

using namespace std;

const int N = 1e6 +...]]></description><category></category></item><item><title><![CDATA[深度探索c++对象模型（四）补充]]></title><link>https://blog.youkuaiyun.com/zxt_1/article/details/102883775</link><guid>https://blog.youkuaiyun.com/zxt_1/article/details/102883775</guid><author>zxt_1</author><pubDate>Sun, 10 Nov 2019 13:39:22 +0800</pubDate><description><![CDATA[1. 普通成员变量的存储顺序按照在类中定义的顺序
class A
{
public:
	int m_i;
	static int m_si;

	int m_j;
	static int m_sj;

	int m_k;
	static int m_sk;
};

int main()
{
	A a;
	a.m_i = 2;
	a.m_k = 5;
	a.m_j = 3;

	return 0;
...]]></description><category></category></item><item><title><![CDATA[深度探索c++对象模型（五）]]></title><link>https://blog.youkuaiyun.com/zxt_1/article/details/100534787</link><guid>https://blog.youkuaiyun.com/zxt_1/article/details/100534787</guid><author>zxt_1</author><pubDate>Thu, 05 Sep 2019 22:23:55 +0800</pubDate><description><![CDATA[1. 虚继承的引入（解决访问二义性）
class A
{
public:
	int m_a;
};

class B:public A
{
public:
	
};

class C :public A
{
public:
	
};

class D :public B, public C
{
public:
	
};

int main()
{
	D d;
	d.m_a = 5;	//error...]]></description><category></category></item></channel></rss>