緩沖區(qū)是什么意思 STL中的queue容器能夠自己釋放內(nèi)存空間嗎?
STL中的queue容器能夠自己釋放內(nèi)存空間嗎?1. 隊(duì)列不保存對(duì)象本身,它只是打包deque并使用deque保存對(duì)象。Deque使用緩存技術(shù),如果Deque不銷毀,Deque中的緩沖區(qū)只會(huì)變大而不會(huì)
STL中的queue容器能夠自己釋放內(nèi)存空間嗎?
1. 隊(duì)列不保存對(duì)象本身,它只是打包deque并使用deque保存對(duì)象。Deque使用緩存技術(shù),如果Deque不銷毀,Deque中的緩沖區(qū)只會(huì)變大而不會(huì)變小。
可以使用刪除(3) 無(wú)法釋放隊(duì)列中的對(duì)象,但應(yīng)該在其自身解構(gòu)期間釋放它。(4) 可以使用deque,這樣釋放對(duì)象更直接、更方便。(5) 詳情請(qǐng)參閱:www.cplusplus.com
C string類的reserve方法是做什么的?
原型:#include<string>void reserve(size)uype size=0)function reserve()將字符串的容量至少設(shè)置為size。如果size指定的值小于當(dāng)前字符串中的字符數(shù)(即size<this→size()),則容量將精確設(shè)置為字符數(shù)。Reserve()以線性時(shí)間運(yùn)行。它最有用的目的是避免重復(fù)重新分配緩沖區(qū)內(nèi)存,從而降低效率,或者在使用某些STL操作(如STD::copy)之前確保緩沖區(qū)足夠大。
C STL中的std:string類以字符0'結(jié)尾么?
沒(méi)有規(guī)定,但我認(rèn)為沒(méi)有任何理由不以零結(jié)尾或保留以零結(jié)尾的位置。原因是對(duì)str()的調(diào)用返回一個(gè)以零結(jié)尾的C樣式字符串。如果內(nèi)部端點(diǎn)不為零或端點(diǎn)零的位置未保留,則此函數(shù)的實(shí)現(xiàn)將是低效的,因?yàn)檫@意味著要重新分配更大的緩沖區(qū)來(lái)保存數(shù)據(jù)。因此(或出于其他原因),主流實(shí)現(xiàn)以零結(jié)束或保留零的位置。