原创 可變形參的函數

可變形參的函數 總共有三種方式: initializer_list (c++11) 省略符形參 可變參數模板 (c++11) initializer_list 這種只適用於全部實參類型相同,我們可用initializer_li

原创 函數對象和函數指針

函數指針 函數指針:是指向函數的指針變量,在C編譯時,每一個函數都有一個入口地址,那麼這個指向這個函數的函數指針便指向這個地址。 用途:用作調用函數和做函數的參數。 聲明方法:數據類型標誌符 (指針變量名) (形參列表

原创 同步-異步-阻塞-非阻塞全面解析

阻塞/非阻塞/同步/異步 首先結論如下: 對於unix來說: 阻塞式I/O(默認) 非阻塞I/O(nonblock) I/O複用(select/poll/epoll) 都是同步I/O,因爲它們在數據由內核空間複製回進程緩衝區時

原创 vscode配置c++環境 如何在windows上開發linux程序

VSCode(c/c++插件)配置C++環境 請看官方文檔足夠解決大部分問題. 如果您只想要一個輕量級工具來編輯C ++文件,Visual Studio Code是一個很好的選擇。但是,如果您希望獲得現有Visual C ++

原创 extern,extern C,頭文件中可否定義變量,static,const等彙總

extern , extern “C” 作用, 該不該在頭文件中定義全局變量? 以及C中的const static,C++中的static 和 const區別聯繫. extern 首先說明extern,一般來說extern的作用是

原创 strcpy的不安全之處

不安全的strcpy strcpy 將src指向的以null結尾的字節字符串(包括null終止符)複製到dest指向其第一個元素的字符數組。 如果dest數組不夠大,則行爲未定義。 如果字符串重疊,則行爲未定義。 如果dest不是指向

原创 SIGINT,SIGKILL,SIGTERM信號區別,各類信號總結

SIGINT,SIGKILL,SIGTERM 三者都是結束/終止進程運行.但略微有區別. SIGINT 產生方式: 鍵盤Ctrl+C 產生結果: 只對當前前臺進程,和他的所在的進程組的每個進程都發送SIGINT信號,之後這些進程會執

原创 函數調用約定(cdecl,stdcall,thiscall...等區別)

X86函數調用約定(cdecl,stdcall,fastcall,thiscall…) 調用者清理堆棧的約定: 在這些約定中,調用者自己清理堆棧上的參數(arguments),這樣就允許了可變參數列表的實現,如printf()。 cd

原创 c++ primer 13.22練習(值行爲的類)

13.22 #include <iostream> #include <memory> #include <string> #include <vector> using namespace std; class HashPtr{ pu

原创 (一)將7.1.1vtk配置到MFC工程中去

畢業設計要求將CT序列圖進行三維結構的重建顯示,要用到VTK庫,VTK和MFC進行混合編程。 說實話,這個過程很煩,首先是MFC本身就是一個即將淘汰的技術,但是由於實驗室要維護一套祖傳的軟件(已有14年的歷史。。。),被強制要求使用MFC

原创 [LeetCode] 804. Unique Morse Code Words

題目描述: a-z都有對應的莫斯密碼 爲: [“.-“,”-…”,”-.-.”,”-..”,”.”,”..-.”,”–.”,”….”,”..”,”.—”,”-.-“,”.-..”,”–”,”-.”,”—”,”.–.”,”–.-“,”.

原创 C++ primer 當vector中的push_back遇到移動構造函數會發生什麼

首先仔細閱讀 C++ primer 第五版 P474 Note下面的一段話 意思是說當我們在類中定義了移動構造函數的時候,假設這個移動構造函數是noexcept的,類似對應StrVec類的操作,vector可能會重新分配內存,也就是說會將

原创 ASCII Unicode UTF-8/16的區別,及char c='漢';

從ASCII到Unicode,UTF-8 作者:於洋 鏈接:https://www.zhihu.com/question/23374078/answer/69732605 來源:知乎 著作權歸作者所有。商業轉載請聯繫作者獲得授權,非

原创 c++ primer 類中函數調用過程解析(虛函數與作用域) P550疑問解析

函數調用過程 即c++ primer 第五版中P549所談,這裏強調幾點。 假定是p->mem() 或者obj.mem() 首先確定靜態類型,即p的類型。 然後在這個靜態類型中名字查找函數,即查找有沒有mem。即 名字查找。 若沒有則

原创 [C++] 分析std::iterator和std::iterator_traits

std::iterator和std::iterator_traits std::iterator std::iterator是一個模板類,其聲明爲: template< class Category, class