原创 qmake,make,nmake

gcc是GUN compiler Collection (GUN編譯器套件),也可以簡單理解爲編譯器,他可以編譯多種語言。 make是批處理工具,通過調用makefile文件(抽象層次很低)中的命令來進行多文件編譯和鏈接。maekfile

原创 error C3688: 文本後綴 __FSTREXP 無效未找到文文本運算符或文本運算符模板“operator __FSTREXP

error C3688: 文本後綴“__FSTREXP”無效;未找到文文本運算符或文本運算符模板“operator """"__FSTREXP”   __FUNCTION__作爲宏參數時,前後要有空格 #define dPrintA(_x

原创 Qt5.13.0靜態編譯

所用到的庫,都上傳到了github https://github.com/nangongyuan/Qt-5.13.0-.git   所需包含的頭文件,這裏直接用了絕對路徑,實際使用中最好不要 E:\Qt\Qt5.13.0\5.13.0\

原创 map 容器

作爲關聯式容器的一種,map 容器存儲的都是 pair 對象,也就是用 pair 類模板創建的鍵值對。其中,各個鍵值對的鍵和值可以是任意數據類型,包括 C++ 基本數據類型(int、double 等)、使用結構體或類自定義的類型。 與此同

原创 array 容器

array 容器是 C++ 11 標準中新增的序列容器,簡單地理解,它就是在 C++ 普通數組的基礎上,添加了一些成員函數和全局函數。在使用上,它比普通數組更安全(原因後續會講),且效率並沒有因此變差。 和其它容器不同,array 容器的

原创 deque(雙端隊列)容器

deque 是 double-ended queue 的縮寫,又稱雙端隊列容器。 deque 容器擅長在序列尾部添加或刪除元素(時間複雜度爲O(1)),而不擅長在序列中間添加或刪除元素。 deque 容器也可以根據需要修改自身的容量和大小

原创 多線程MT和多線程MD的區別

多線程MT加載的是靜態運行時庫,屬於C語言版本;而多線程MD版本加載是動態運行時庫,屬於微軟版本。在工程屬性窗體中選擇配置屬性,C++選項的代碼生成多線程調試 DLL (/MDd)和多線程調試 DLL (/MTd)是Debug版本,後面沒

原创 查找哪個程序佔用了文件

任務管理器->資源監視器->CPU->關聯句柄 根據關鍵字搜索,文件名,目錄名等

原创 forward_list

forward_list 是 C++ 11 新添加的一類容器,其底層實現和 list 容器一樣,採用的也是鏈表結構,只不過 forward_list 使用的是單鏈表,而 list 使用的是雙向鏈表 由於單鏈表沒有雙向鏈表那樣靈活,因此相比

原创 multimap 容器

multimap 容器具有和 map 相同的特性,即 multimap 容器也用於存儲 pair<const K, T> 類型的鍵值對(其中 K 表示鍵的類型,T 表示值的類型),其中各個鍵值對的鍵的值不能做修改;並且,該容器也會自行根據

原创 priority_queue 容器

priority_queue 容器適配器模擬的也是隊列這種存儲結構,即使用此容器適配器存儲元素只能“從一端進(稱爲隊尾),從另一端出(稱爲隊頭)”,且每次只能訪問 priority_queue 中位於隊頭的元素。 但是,priority_

原创 d指針/p指針

1.二進制兼容性 所謂二進制兼容就是在做版本升級(也可能是Bug fix)庫文件的時候,不必要做重新編譯使用這個庫的可執行文件或使用這個庫的其他庫文件,同時能保證程序功能不被破壞。 比如修改一個類的成員變量,新增 對象的內存就會增大,根據

原创 C++ 查看預處理後的源文件

gcc -E filename.cpp 會生成 filename.cpp 的預處理文件   使用vs 打開VS的開發人員命令提示符 或者用cmd運行 vcvarsall.bat  生效VC環境變量 cl.exe -E QtDemo.cpp

原创 修改QFileDialog翻譯

在ts文件新增翻譯 <context>     <name>QFileDialog</name>     <message>         <location filename="D:/Qt/Qt5.13.0/5.13.0/Src/qt

原创 進入函數直接崩潰,可能是爆棧了

進入函數直接崩潰,可能是爆棧了