原创 C# List 一步初始化

原理: 數組可以通過 int [] arr = new int[]{1, 2, 3}; 初始化 List 可以通過 List<int> list = new List<int>(arr); 初始化。兩者組合起來就可以一步初始化

原创 如何利用std::initializer_list讓你的初始化函數很騷

好久以前隨便瞎轉的時候看到一個 c++ 的 json 庫支持這樣的寫法,覺得非常酷,顛覆了c++的三觀。 (https://github.com/nlohmann/json) // a way to express an _ar

原创 C# 如何從控制檯讀取輸入和輸出

// Console 是 namespace System 的一個類 string str = Console.ReadLine(); // 讀入一行字符串,去掉其中的讀入的換行符 int a = Console.Read();

原创 如何用python-opencv對圖片進行投影變換?

perspective_matrix = cv2.getPerspectiveTransform(np.float32(src_points), np.float32(target_points)) projected_image

原创 教你教電腦下圈叉棋

原理 主要是看了這一篇Get a taste of reinforcement learning — implement a tic tac toe agent,裏面作者提出了大概的訓練思路,我基本沒有參照他的具體實現,但是思路肯定是

原创 MSVC X64 函數中的 RSP, RBP 和 Calling Convention

上一篇 博文提到了 X64 下 MSVC 如何傳遞參數,但是沒有涉及到當參數個數大於 4 的時候如何分配內存空間的問題,接下來我們來探究這個問題。 RSP 和 RBP 按照上面提到的博文,我們進行如下實驗: 所有參數都是 struc

原创 C# 迭代器

方法一 可以通過申明一個迭代器的屬性實現迭代器 方法是 <訪問控制符> IEnumerable <T> 迭代器名稱 每次訪問迭代器,會從老地方進入迭代器函數,然後迭代器 yield 或終止,下次再從 yield 的下一行開始執行

原创 MSVC在x64模式下如何傳參?

由於我需要寫一個編譯器,爲了彙編程序和MSVC生成的C++進行交互,必須瞭解MSVC在x64下如何運作。查了一下基本沒有中文的資料,MSDN是有文檔的,但是講的也不太清楚,這裏根據這篇 進行一些試驗,關鍵是弄懂 struct 是如何作爲參

原创 C++ 利用宏批量定義類型/常量信息

標題起得比較模糊,是因爲我才疏學淺,不知道怎麼去描述這個事情 探究的興趣來源於 V8 的代碼: bytecode.h 它定義了一段我看不懂的宏 [code-0] #define BYTECODE_LIST(V)

原创 C# Redis 超時問題解決

https://stackexchange.github.io/StackExchange.Redis/Timeouts Redis本身非常快,如果感覺是因爲請求量過大想要 write in batch 的話排查方向可能錯了,這裏是 C#

原创 C# 的 async 和 await

C# 中可以利用 async 定義一個會進行非阻塞等待的函數,函數內部用 await Task.Run<TResult>(function) 來實現非阻塞等待,運行到 await 時,這個函數(所在的線程)會放棄控制權,然後當 funct

原创 如何使用 Dockerfile 進行multi-stage building

需求: 1. 環境 A 用於 build 框架 a (不需要改動,編譯時間很長) 2. 環境 B 用於 build 應用 b (需要頻繁改動) 怎麼辦? https://docs.docker.com/develop/develo

原创 用最小堆優化 Dijkstra 算法

偷一份算法導論 dj 算法的僞代碼: DIJKSTRA(G, w, s) 1 INITIALIZE-SINGLE-SOURCE(G, s) 2 S ← Ø 3 Q ← V[G]

原创 Xunit test 如何捕獲並顯示 output

定義時使用 ITestOutputHelper outputHelper; public TestService(ITestOutputHelper output) {

原创 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: