原创 c++ detailed note
vector::emplace_back:在vector內存中直接創建對象 vector::push_back:將對象複製後拷貝到vector內存中 vector添加元素超過capacity時候,vector擴展2倍內存,把運來的數據
原创 c++回爐
函數 void func(){return;} //return後面不能接內容,或者沒有return. 在void函數中,return用於提前結束函數,否則在右大括號處結束 type func(){return value;}
原创 函數參數問題
1.要個臨時變量而已 if(netName == string("N47352")) 2.ds
原创 拷貝構造函數
什麼時候需要拷貝構造函數: class Test; Test a1; Test a2 = a1; Test a3(a1); void func(Test obj); func(a1); Test func2(){T
原创 c++接口, 虛函數,純虛函數
虛函數爲了重載和多態:父類和子類之間的關係 多態:基類指針形參/變量接受一個派生類的地址實參/變量,通過基類指針可以調用派生類的虛函數重載。 class Base{ public: virtual void print_test(){c
原创 why use Base in derived class
class my_container : unordered_map<string, int>{ typedef unordered_map<string, int> Base; void get(const string& n
原创 位操作
//只能用於整型數據,float,double不可以 /* bit_get */ int bit_get(constunsigned char *bits,int pos) { unsigned char mask; int i; /
原创 代碼結構
#define OPTION_PAIR(opt_name, type, opt_value) \ d_pairs[std::string(#opt_name)]=std::string(opt_value); \ d_ha
原创 代碼相關的用法
1.char *p1="abc",*p2="abc"; cout<<(string(p1)==string(p2))<<endl;//char *沒有比較操作,利用string來比較char * ,做右值時候直接用構造函數,做
原创 多文件相關
1.全局變量(多個文件使用一個全局變量) 在其中一個文件中定義unsigned char key=' ';然後在其他文件中用extern unsigned char key;(不需要包含關係) 頭文件裏一般不定義全局變量,因爲被多個實現文
原创 why empty constructor is necessary
follow stackflow: class Image{ public: Image(int size):size_(size){} private: inst size_; }; class Render
原创 自己看3
1.double-check的代碼 ******膜拜大神https://liam0205.me/2017/01/17/fork-safe/************* if(NULL==ptr){ //確保在ptr是NULL的時候採取獲
原创 系統+線程+進程
分時操作系統(time sharing system) 一臺計算機掛有若干終端, 每個終端提供給一個用戶,不同用戶通過自己的終端訪問系統。 系統將處理器的時間分割成很小的時間段(時間片),系統以時間片爲單位,交替爲終端服務,但是用戶的感覺
原创 enum
void fun(const char* cmd){ typedef struct cmdR{ const char* name; int32 nchar; int32 cmdId; } cmdR; e
原创 字節對齊
1.爲什麼要字節對齊 內存按byte(字節)劃分,而數據類型最小的也就一個字節,所以理論可以從任何地址開始訪問,但實際訪問特定 類型變量的時候經常在特定的內存地址訪問。不同數據類型按一定規則在空間排列,而不是順序排列,這就需要字節對齊。