- 博客(24)
- 收藏
- 关注
原创 教你教电脑下圈叉棋
原理主要是看了这一篇Get a taste of reinforcement learning — implement a tic tac toe agent,里面作者提出了大概的训练思路,我基本没有参照他的具体实现,但是思路肯定是差不多的。而且训练结果是我几乎下不过这个AI,比这篇的结果要好很多(不过这种明显算法可以解决的问题用AI也没什么意思)。实现核心在于训练一个模型MMM,这个模型用...
2018-10-12 21:30:35
1418
1
原创 MSVC X64 函数中的 RSP, RBP 和 Calling Convention
上一篇 博文提到了 X64 下 MSVC 如何传递参数,但是没有涉及到当参数个数大于 4 的时候如何分配内存空间的问题,接下来我们来探究这个问题。RSP 和 RBP按照上面提到的博文,我们进行如下实验:所有参数都是 struct Arg, 并且 sizeof(Arg) == 16。实验中,参数的个数 k = 6, 7, 8,先观察汇编后 rsp 和 rbp 寄存器的变化。实验...
2018-09-14 10:46:37
2546
原创 C# Redis 超时问题解决
https://stackexchange.github.io/StackExchange.Redis/TimeoutsRedis本身非常快,如果感觉是因为请求量过大想要 write in batch 的话排查方向可能错了,这里是 C# 本身默认设置的问题: 主要是这篇文章的 Are you seeing high number of busyio or busyworker threads...
2018-08-13 19:48:52
3957
原创 如何使用 Dockerfile 进行multi-stage building
需求: 1. 环境 A 用于 build 框架 a (不需要改动,编译时间很长) 2. 环境 B 用于 build 应用 b (需要频繁改动) 怎么办? https://docs.docker.com/develop/develop-images/multistage-build/#use-multi-stage-builds...
2018-08-01 16:37:14
397
原创 MSVC在x64模式下如何传参?
由于我需要写一个编译器,为了汇编程序和MSVC生成的C++进行交互,必须了解MSVC在x64下如何运作。查了一下基本没有中文的资料,MSDN是有文档的,但是讲的也不太清楚,这里根据这篇 进行一些试验,关键是弄懂 struct 是如何作为参数传递的。首先你需要阅读上面那个连接,了解 Windows 下 64 位的基本调用规范,包括整数、浮点数参数如何传递等等,然后这篇文章是用来解答上面的文档中需...
2018-07-25 14:25:55
1038
原创 C++ 利用变长模板生成类型安全的变参函数
阅读本文需要理解 C++ 变长模板、函数重载等基本操作,可以自行百度别的博客void eat(int i){ cout << "eat " << i << endl;}void eat(char c){ cout << "eat " << c << endl;}// 利
2018-07-24 17:18:24
343
原创 C++ 利用宏批量定义类型/常量信息
标题起得比较模糊,是因为我才疏学浅,不知道怎么去描述这个事情探究的兴趣来源于 V8 的代码:bytecode.h它定义了一段我看不懂的宏 [code-0]#define BYTECODE_LIST(V) \ /* Extended width operands */ ...
2018-07-11 17:55:50
2197
原创 VS2017 Resharper的安装与使用
Resharper 有什么用https://www.jetbrains.com/resharper/如何安装打开 Visual Studio 2017,依次点击 工具 -> 扩展和更新 点击 联机在 搜索(Ctrl+E) 中输入 Resharper点击 下载(D) 会连接到外网,下载下来一个下载器,运行时是这样安装时记得勾选 Resharper C++ ,...
2018-07-08 19:10:51
49691
2
原创 彻底搞懂 c++ 函数参数的 & 和 &&
&amp;如果你在网上看到 c++ 的几种传参方式,肯定就分成两种,“值传递”和“引用传递”。值传递很简单,复制一份就是了;“引用传递”就说的马马虎虎了。“传递的是实参的本身”,说起来很轻松,实际上很有问题。最简单的一个问题就是:“实参”本身不是一个东西怎么办?例如:void f_ck(int &amp; i) { i++;}... fuck(1); // 编译不通过,...
2018-07-02 23:51:45
40685
7
原创 如何利用std::initializer_list<T>让你的初始化函数很骚
好久以前随便瞎转的时候看到一个 c++ 的 json 库支持这样的写法,觉得非常酷,颠覆了c++的三观。 (https://github.com/nlohmann/json)// a way to express an _array_ of key/value pairs [["currency", "USD"], ["value", 42.99]]json array_not_objec..
2018-06-29 00:32:03
5502
原创 如何用 VS2017 检测 c++ 内存泄漏
https://msdn.microsoft.com/zh-cn/library/x98tx3cf.aspx要获得内存泄漏的报错信息,只需要三步,咱们不懂原理,只能复制代码。开始必须要有这样的引用#define CRTDBG_MAP_ALLOC #include &lt;stdlib.h&gt; #include &lt;crtdbg.h&gt; c++...
2018-06-27 22:49:27
7014
原创 C++值函数的初始化与拷贝
非常坑!当把对象作为值类型的时候,比如SomeType是SomeSucker的一个值类型class SomeSucker { SomeType something; SomeSucker() { something = SomeType(); } };class SomeType() { int arr[100]; int* ptr...
2018-06-27 12:03:01
189
原创 用最小堆优化 Dijkstra 算法
偷一份算法导论 dj 算法的伪代码:DIJKSTRA(G, w, s)1 INITIALIZE-SINGLE-SOURCE(G, s)2 S ← Ø3 Q ← V[G] //V*O(1)4 while Q ≠ Ø5 do u ← EXTRACT-MIN(Q) //EXTRACT-MIN,V*O(...
2018-06-10 22:57:16
2996
1
原创 C# 同时运行多个 Task
public static async Task<int> CalcAsync(int wait, int shit) { await Task.Run(() => Thread.Sleep(wait)); return shit; } public static as...
2018-06-08 17:53:55
10155
原创 C#: 如何使用VS 2017不依赖 ASP.NET Core 使用 EF Core 管理 sqlite 数据库
基本 follow 这篇,但是需要把一些命令行操作转化为 VS 操作。 https://docs.microsoft.com/en-us/ef/core/get-started/netcore/new-db-sqlite https://docs.microsoft.com/en-us/ef/core/get-started/aspnetcore/new-db EF Core 与 asp.n...
2018-06-07 11:10:10
2984
原创 Xunit test 如何捕获并显示 output
定义时使用 ITestOutputHelper outputHelper; public TestService(ITestOutputHelper output) { this.output = output; }之后利用 output.WriteLin...
2018-06-05 18:30:14
1595
原创 C# 的 async 和 await
C# 中可以利用 async 定义一个会进行非阻塞等待的函数,函数内部用 await Task.Run<TResult>(function) 来实现非阻塞等待,运行到 await 时,这个函数(所在的线程)会放弃控制权,然后当 function 返回后,再继续执行。 using System;using System.Collections.Generic;using Syst...
2018-06-01 14:21:36
324
原创 C# List<T> 一步初始化
原理: 数组可以通过int [] arr = new int[]{1, 2, 3};初始化 List 可以通过List<int> list = new List<int>(arr);初始化。两者组合起来就可以一步初始化列表 List<Product> pList = new List<Product&g...
2018-05-31 16:46:24
36923
1
原创 VS C# 装逼自动构造代码片段
类中输入 prop\t\t 得到 public int MyProperty { get; set; }光标移动到 int 后方。输入 ctor\t\t 得到构造器函数 public Seat() { }输入 cw\t\t 得到 Console.WriteLine();光标移动到括号里。...
2018-05-31 14:11:15
1675
原创 C# lambda 表达式和 var 关键字
lambda 表达式 (int x, int y) =&amp;gt; { return x + y }delegate 所引用的函数可以用匿名的方式定义 和 js 一样,lambda 表达式会捕捉定义时上下文中的变量,形成闭包。using System;using System.Collections.Generic;using System.IO;using System.Linq;...
2018-05-31 10:37:45
702
原创 C# 迭代器
方法一可以通过申明一个迭代器的属性实现迭代器 方法是 &amp;lt;访问控制符&amp;gt; IEnumerable &amp;lt;T&amp;gt; 迭代器名称 每次访问迭代器,会从老地方进入迭代器函数,然后迭代器 yield 或终止,下次再从 yield 的下一行开始执行。 如果迭代器函数已经结束,不需要返回任何东西,foreach 会结束对其的访问。using System.Text;na...
2018-05-29 18:52:18
314
原创 一个不同二叉搜索树结构个数的证明
https://leetcode.com/problems/unique-binary-search-trees/description/给定 1~n 共 n个 数字,建立一个二叉搜索树,则 n 个节点的有根树的所有结构,都有一个二叉搜索树与之结构相同。这里用数学归纳法证明:n = 1,没有问题。n = k,k 个节点的有根树的所有结构,都有一个二叉搜索树与其相同。 那么,我们只...
2018-05-25 18:15:52
793
原创 C# 如何从控制台读取输入和输出
// Console 是 namespace System 的一个类 string str = Console.ReadLine(); // 读入一行字符串,去掉其中的读入的换行符int a = Console.Read(); // 读入下一个输入,键盘按下瞬间相应,回车也会相应// VS 命令行下,一次回车会输入\r\n两个字符,满足两次Read()...
2018-05-24 15:44:57
17378
原创 如何用python-opencv对图片进行投影变换?
perspective_matrix = cv2.getPerspectiveTransform(np.float32(src_points), np.float32(target_points))projected_image = cv2.warpPerspective(image, perspective_matrix, (w, h))注意是np.float32, 否则会报错 ...
2018-05-24 00:02:30
1597
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人