第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

c++ map clear相關(guān)內(nèi)存會(huì)清空嗎?

c++ map clear相關(guān)內(nèi)存會(huì)清空嗎?

汪汪一只貓 2019-01-30 14:03:38
c++ map clear相關(guān)內(nèi)存會(huì)清空嗎
查看完整描述

3 回答

?
心有法竹

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊

根據(jù)你的問題,我覺得它和下面的問題是等價(jià)的:
std::map<T1,T2>模板類,clear成員函數(shù)的作用是什么,以及如何影響其控制的內(nèi)存
下面我來講講這一點(diǎn):

std::map<T1 key,T2 value>::clear()成員函數(shù)本身的作用是將map所有的節(jié)點(diǎn)都釋放,執(zhí)行完成之后map成為一個(gè)空映射表
由于map會(huì)釋放節(jié)點(diǎn),所以如果節(jié)點(diǎn)是對(duì)象,而非指針的時(shí)候,clear會(huì)調(diào)用對(duì)象的析構(gòu)函數(shù)
在這種情況下,map會(huì)釋放相關(guān)內(nèi)存的占用
但是如果節(jié)點(diǎn)是指針而非對(duì)象的時(shí)候,情況就比較復(fù)雜,因?yàn)閏lear不會(huì)主動(dòng)進(jìn)行釋放指針指向的內(nèi)存。這個(gè)時(shí)候需要用戶在清理map的時(shí)候進(jìn)行處理
如果指針是指向的常量地址(比如常量字符串、常量數(shù)組之類),則可以無需釋放
如果指針是指向的對(duì)象地址,而這個(gè)對(duì)象本身是全局對(duì)象或者另有程序控制它的生命周期,則也可以無需釋放
對(duì)于上面兩種情況,map的clear可以直接調(diào)用無需特別的自定義處理
但是對(duì)于指針是通過new、malloc、alloc等方式獲取的,而且僅有map獲取了持有權(quán),則需要在清理的時(shí)候,遍歷所有的節(jié)點(diǎn),執(zhí)行內(nèi)存釋放后,再調(diào)用clear
補(bǔ)充幾點(diǎn):
std::map<T1,T2>::iteator 可以像std::list<T>::iteator一樣,遍歷map的所有節(jié)點(diǎn)
作為map的key,請(qǐng)不要使用指針,因?yàn)閙ap會(huì)將指針作為類似整數(shù)一樣的處理,而不會(huì)調(diào)用相關(guān)的比較操作,另外key被清理的時(shí)候,情況和value一樣,參考上面的描述
map并非線程安全的,這點(diǎn)尤其注意 stl并沒有對(duì)map的線程安全性做任何承諾



查看完整回答
反對(duì) 回復(fù) 2019-03-20
?
當(dāng)年話下

TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊

記住C++ 清理 new 關(guān)鍵的內(nèi)存 只有delete 才能釋放。
map 就是一個(gè) 模板類而已 會(huì)調(diào)用析構(gòu)函數(shù)。 你認(rèn)為它會(huì) 寫delete嗎 答案是不會(huì)的。
map 存的是對(duì)象可以釋放內(nèi)存。
但是 存的是指針 只能自己釋放。

查看完整回答
反對(duì) 回復(fù) 2019-03-20
?
寶慕林4294392

TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個(gè)贊

clear清除了key-value鍵值對(duì)和內(nèi)容,但如果涉及到在堆上開辟內(nèi)存的話,這些內(nèi)存還要程序員手動(dòng)釋放。

查看完整回答
反對(duì) 回復(fù) 2019-03-20
  • 3 回答
  • 0 關(guān)注
  • 3033 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)