最近寫乙個入門級別的聊天室程式的時候
用到動態分配空間,第一聯想到的就是vector容器
但是客戶端連線的時候經常出崩潰的現象
經過排查,原來是傳遞了容器指標!
查資料才知道,當新增新的資料進去的時候
vector容器在重新分配空間時它會做這樣的動作:
首先,vector 會申請一塊更大的記憶體塊;
然後,將原來的資料拷貝到新的記憶體塊中;
其次,銷毀掉原記憶體塊中的物件(呼叫物件的析構函式);
最後,將原來的記憶體空間釋放掉。
下面是 簡單的**和最後的結果
vector容器新增資料的時候,原來的位址會改變,所以想要呼叫,只能使用vs[0],這種方式
而list不會出現位址改變,因為它的記憶體的分開的
卻沒有vector使用的靈活!
vector 中 erase 用法注意事項
vector erase 從指定容器刪除指定位置的元素或某段範圍內的元素 vector erase 方法有兩種過載形式 如下 iterator erase iterator where iterator erase iterator first,iterator last 如果是刪除指定位置的元素時...
java DOM 注意事項
1.w3c把標籤內的文字部分也定義成乙個node 2.element物件代表的是xml文件中的標籤元素 繼承於node,亦是node的最主要的子物件 3.attr實際上是包含在element中的,它並不能被看作是element的子物件,因而在dom中attr並不是dom樹的一部分,所以node中的 ...
static注意事項
static關鍵字是c,c 中都存在的關鍵字,它主要有三種使用方式,其中前兩種只指在c語言中使用,第三種在c 中使用 c,c 中具體細微操作不盡相同,本文以c 為準 1 區域性靜態變數 2 外部靜態變數 函式 3 靜態資料成員 成員函式 下面就這三種使用方式及注意事項分別說明 一 區域性靜態變數 在...