原创 【CMake】CMakeLists.txt的超傻瓜手把手教程(附實例源碼)

新手寫CMakeLists.txt簡直就是實力勸退,各種命令讓很多人頭大,如何寫一個最基礎的CMakeLists.txt呢?本文從一個實例出發,教你編寫的基本流程。 本文附實例的源碼地址。 CMakeLists.txt的基本結構

原创 【GDB】手把手教你用gdb調試程序(超清晰流程)

實例 我以自己曾經寫的一段實際代碼爲例,來講解究竟該怎麼進行GDB調試。 實例地址: 碼雲:https://gitee.com/yngzMiao/protobuf-parser-tool GitHub:https://github

原创 【C++】C++字符串和數字的拼接

如果你使用過python,你會發現字符串和int/float/double便捷的拼接方式;但如果你使用C++,可能你每次需要的時候搜索一下才能知道。本文提供兩種簡單的方式來完成這個功能。 本文實例源碼github地址:https:

原创 【C++】C++11的std::array的詳細剖析

當學習C++的時候,數組是最基本的結構之一,通常通過以下的方式來定義: int a[5]; int *b = new int[5]; 上面一句是在棧上定義了一個長度爲5的數組,下面一句是在堆上定義了一個長度爲5的數組,並用一個指

原创 【OpenCV】OpenCV常用函數(C++版)

俗話說:好記性不如爛筆頭。在使用OpenCV的過程中,時常會用到很多函數,而且往往可能會一時記不起這個函數的具體參數怎麼設置,故在此將常用函數做一彙總。 本文實例源碼github地址:https://github.com/yngz

原创 【Cmake】利用NDK進行Android的交叉編譯(附實例)

很多時候,對於C++軟件工程師來說,可能需要編譯能夠在Android版本上直接運行的可執行程序、或者是編譯so庫文件,這個時候就需要完成交叉編譯。在命令行下執行交叉編譯有兩種方式: 一是用NDK自帶的工具鏈 二是使用獨立工具鏈

原创 【python】Python學到什麼程度可以面試工作(解答一)

逛知乎,看到帖子Python學到什麼程度可以面試工作?,在桃花島主的回答中講到2019年最新的Python面試題,同時還有旭東大佬已做了大部分的解答。 博主會在幾篇博文中,結合大佬的回答,對這些題目做更詳盡的解答。 本文實例源碼g

原创 【Protobuf】Protobuf下載安裝和.proto文件定義

Protobuf是Google開源的一個項目,博主將會在幾篇博文中對其進行講解。 本文實例源碼github地址:https://github.com/yngzMiao/yngzmiao-blogs/tree/master/2019

原创 【CMake】CMake的configure_file指令

有些時候,我們需要在項目中標明版本號、Git的hash號、編譯時間等信息,但是顯然,對於Git的hash號、編譯時間我們不想自己手動填寫。現在提供一種途徑,將這些信息寫入到頭文件中,再編譯到so庫文件或者可執行程序中。 這樣,就可

原创 【C++】C++11統一初始化(initializer_list源碼分析)

C++11之前的初始化語法很亂,有四種初始化方式,而且每種之前甚至不能相互轉換。讓人有種剪不斷,理還亂的感覺。因此,C++11添加了統一初始化的方式,本文將對統一初始化的語法進行詳細講解。 本文實例源碼github地址:https

原创 【Python】python曲線擬合

python作爲一款可以簡單方便地進行科學計算的語言,進行曲線擬合自然是必備的功能之一了。本文就如何進行曲線擬合進行講解。 本文需要進行擬合的數據爲: x = np.arange(1, 31, 1) y = np.array([2

原创 【C++】NULL和nullptr的關聯與差別

在寫代碼的過程中,有時候需要將指針賦值爲空指針,以防止野指針。在C中,都是使用NULL來實現的;在C++中,除了NULL之外,還提供了nullptr來進行定義。那麼兩者之間有什麼區別呢,分別適用於什麼類型的場景呢? 本文實例源碼g

原创 【Protobuf】Protobuf的編解碼規則詳解

在很多很多時候被問起,爲什麼選擇protobuf?最先被想起的回答的就是體積小、解析快。那相比較於json、XML,爲什麼protobuf能夠做到又小又快呢? 歸其原因,這與它的編解碼方式有很大的關係。本文將走進protobuf的

原创 【CMake】cmake的add_custom_command和add_custom_target指令

在很多時候,需要在cmake中創建一些目標,如clean、copy等等,這就需要通過add_custom_target來指定。同時,add_custom_command可以用來完成對add_custom_target生成的targ

原创 【C++】C++11的std::function和std::bind用法詳解

在設計回調函數的時候,無可避免地會接觸到可回調對象。在C++11中,提供了std::function和std::bind兩個方法來對可回調對象進行統一和封裝。 本文實例源碼github地址:https://github.com/y