C 中不太注意的一些小知識點

2021-06-19 02:10:25 字數 642 閱讀 1713

1、模板類的容器map使用時需要注意:當用下標操作符來查詢某個key值是否存在於map中時,若所查詢的元素不在map中,查詢結束後會在map中插入所查詢的key值,此key值對應的value值被初始化成value所屬型別的預設值。如下例:

mapstr_count;

str_count["aaa"]=2;

str_count["bbb"]=3;

if(!str_count["ccc"])

cout<<"ccc not in map"<

ccc not in map

0

即第一次在str_count中查詢字串"ccc"之前,map中沒有字串「ccc」,使用下標操作符查詢的過程中,在map中插入了"ccc"字串,並且把其對應的value值設定成了0。

2、模板類set中的鍵是const型別,既只能讀,不能寫。

3、memcpy函式和memmove函式的區別:前者沒有考慮源記憶體區域和目標記憶體區域重疊的情況,後者有考慮以上情況。所以假如源記憶體區域和目標記憶體區域有重疊,那麼memmove肯定可以得到正確的想要的結果,而memcpy不一定能得到正確的結果。

4、cout可以輸出數值常量。因此,以下語句:

cout<<123《是正確的。輸出結果就是就是:123。

一些小的知識點

malloc calloc 等記憶體分配函式所獲得的記憶體塊都來自乙個稱為堆 heap 的儲存池。記憶體洩漏 memory leak 是指程式中己動態分配的堆記憶體由於某種原因程式未釋放或無法釋放,造成系統記憶體的浪費,導致程式執行速度減慢甚至系統崩潰等嚴重後果。記憶體洩漏缺陷具有隱蔽性 積累性的特...

一些小的知識點

1.recycleview中使用gridlayoutmanager使其有gridview的效果 布局,第乙個引數表示上下文,第二個引數表示 有多少列,如下 rv.setlayoutmanager new gridlayoutmanager this,3 在 布局中還可以修改引數,使其水平布局,那麼那...

Android中的一些小知識點

這些是自己這段時間用到的一些android中的知識點,來個小小總結 多有不足 一.的 快取 1 記憶體快取 優先載入,速度最快 2 本地快取 次優先載入 速度稍快 3 網路快取 最後載入 速度由網路速度決定 浪費流量 二 二次取樣 二次取樣分別是哪兩次?每次取樣的目的是什麼 第二次取樣 二次取樣的時...