vector 注意事項

2021-06-09 05:58:17 字數 713 閱讀 4736

最近寫乙個入門級別的聊天室程式的時候

用到動態分配空間,第一聯想到的就是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 靜態資料成員 成員函式 下面就這三種使用方式及注意事項分別說明 一 區域性靜態變數 在...