原创 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(字節)劃分,而數據類型最小的也就一個字節,所以理論可以從任何地址開始訪問,但實際訪問特定 類型變量的時候經常在特定的內存地址訪問。不同數據類型按一定規則在空間排列,而不是順序排列,這就需要字節對齊。