C 零散記錄

2021-09-10 23:22:33 字數 2970 閱讀 8818

1迭代器控制函式advance的距離引數不需要自己控制,超出元素的範圍會停在最後的引數。但是如果元素內size為0時該函式會停在那;

2  map拷貝

map::iterator begobj = all.objcnt.objcnt.begin(), endobj = begobj;

advance(begobj, hascount), advance(endobj, count + hascount);

**std::copy(begobj, endobj, std::inserter(st.objcnt.objcnt, st.objcnt.objcnt.begin()));

st.objcnt.all = all.objcnt.objcnt.size();

3 vector.reserve(n)  保證向量可以存放n個元素,如果n大於vector.capacity重新開闢空間。

4 . 以;結尾的是語句,沒有;的是型別

5.climits 標頭檔案中的巨集,這個型別極限值。

6.c++11  {} 也可以初始化基本型別,使用{} 可以和 類的型別初始化相同。在使用 賦值不是想賦的值不能縮減,也就是不能賦變數,如果是變數可能會導致賦的值與被賦值型別不匹配。

7.cout  << hex  讓cout以16進製制輸出整形 ,8進製cout<< oct  改為10進製cout <

8.char 在預設情況下是否有unsigned 不一定。

9.c++11 新增型別 char16_t  aa = u'q', char32_t aa= u'q';

10.c++ 11 auto 自動型別, 主要用於迭代器。

11.陣列只能在建立時初始化,陣列直接不能相互賦值。

12.c++陣列初始化可以省略 =, char buf  {}賦值裡面可以為空, 也可以這樣int buf[10]  ,為初始化都為0

13.cin.get(char, size)讀取到回車換行符號時不會讀取之後然後扔掉,所以在cin.get(char,size)之後電影cin.get()讀取乙個換行符然後繼續cin.get(char,size)

14.c++11 原始字元r"(************)",   "( 與)" 是一對,如果字元中包含)"那麼"()" 可以換位"*(*************** )*"

16.共同體是匿名的,結構體可以直接使用共同體裡面的變數,所以共同體外面的名字和裡面的名字不能相同。

18.指標可以和整數相加可以(p指標)p = p + 1,陣列不可以(p陣列名) p = p + ,因為陣列名是常量。

19.++a效率大於a++,以為字尾字元為為a產生臨時變數,在臨時變數加1,而字首是直接加1.指標是可以++的

20.strcmp是進行ascii比較,引數1大於引數2結果大於0.

21.if else 和switch 相比如果選項大於2 使用switch,switch效率更快

22.編譯階段進行型別轉換檢測,比如1.2345e10轉換為int型的錯誤,這種檢測是為靜態型別檢測。

23.void (char *arr )  這樣會失敗

雖然傳入的時候是把位址給了函式的第乙個引數arr,但是由於malloc重新對位址進行了賦值,所以之後的操作也就不是對原來引數的操作了。

24 二級陣列做引數指標  char[3][4] ; void fun(char arg[4], int len)  , void fun(char (*arg), int len), 第二個引數len=3. const 只能用於一級指標。

25.函式指標陣列 double *  f1 (char*buf, int) f1  ,    double * (*p[3])(char *buf, int )=;   f2和f3與f1相同,  呼叫:*p[0](p,l);

26.使用typedef 進行定義函式指標 typedef  double * (*fun_p)(char*,int)   ,  ep:fun_p   p1;

27.遞迴函式,和一些過大的函式不會編譯成內聯函式;而有的編譯器沒啟用這種特性。

28.對於形參型別為const的,如果實參不匹配,者此行為按值傳遞。

29.c++ 新增加右值引用, 識別符號為&&

30. 區分函式過載, 是c++中的修飾名稱機制, 使用函式引數型別對名稱程序加密。

31虛函式的機制是函式指標.

32.模板函式是在編譯的是時候由編譯器根據不同的型別編譯出很多函式。

33 可變引數

string sqlcondition(int n, ...)

va_list ap;

va_start(ap, n);

string sql_condit;

for (int i = 0; i < n; ++i){

sql_condit += va_arg(ap, char*);

va_end(ap);

return sql_condit;

34 模板函式分為隱性例項,顯示具體化template <> void swap(int a, int b)指定型別,這兩種都是宣告。 或者是在 呼叫時候swap(a,b),顯示例項化template  void swap(int a, int b)這種都是在呼叫時指定型別。在同一檔案**換單元)中同事使用顯示例項化和顯示具體化會報錯。

35 在全域性變數使用static變數進行初始化,但有時候static變數自己的初始化未進行,所有導致全域性變數初始化失敗。一直解決辦法是把全域性變數宣告為指標,在main函式裡面對全域性指標初始化,因為此時static變數肯定初始化完成。

C 指標零散記錄

2016.10.11 乙個記錄 void mb float u16 float f,uint16 t a,uint16 t b uint8 t fp uint8 t fp 兩者等價 陣列沒有宣告元素個數 則根據陣列的使用自動匹配元素個數 32位系統中指標變數都佔4個位元組 只有在提取資料的時候才按照...

ts零散記錄

js是一種弱型別的語言,而ts是強型別,適合處理一些大型專案,下面是自己使用時的一些記錄。npm install typescript然後新建乙個ts檔案,編寫後,執行以下指令 tsc 你的檔名他會編譯ts檔案同時生成乙個js檔案,這樣我們就可以使用ts編寫 同時不用考慮相容性問題。需要注意的是 編...

Fujitsu 零散記錄

歡迎來到來到大浪濤天的部落格!檢視solaris root或其他使用者登入情況 logins xl root 檢視m5000帶iobox的網絡卡或者ioboxlin ipcs ma ipcs zam dladm showdev 檢視linux的fc資訊 cat sys class fc host h...