锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久久久成人精品无码,91精品国产高清久久久久久io,天天久久狠狠色综合http://www.shnenglu.com/tankzhouqiang/category/16816.htmlzh-cnThu, 02 Jun 2011 10:44:54 GMTThu, 02 Jun 2011 10:44:54 GMT60c++ STL 瀹瑰櫒http://www.shnenglu.com/tankzhouqiang/archive/2011/06/02/147939.html鍛ㄥ己鍛ㄥ己Thu, 02 Jun 2011 03:28:00 GMThttp://www.shnenglu.com/tankzhouqiang/archive/2011/06/02/147939.htmlhttp://www.shnenglu.com/tankzhouqiang/comments/147939.htmlhttp://www.shnenglu.com/tankzhouqiang/archive/2011/06/02/147939.html#Feedback0http://www.shnenglu.com/tankzhouqiang/comments/commentRss/147939.htmlhttp://www.shnenglu.com/tankzhouqiang/services/trackbacks/147939.html
錛堜竴錛塿ector瀹瑰櫒
vector鐨勬暟鎹畨鎺掍互鍙婃搷浣滄柟寮忥紝涓巃rray闈炲父鐩鎬技銆備袱鑰呯殑鍞竴鍖哄埆鍦ㄤ簬絀洪棿鐨勮繍鐢ㄧ殑鐏墊椿鎬с俛rray鏄潤鎬佺┖闂達紝涓鏃﹂厤緗簡灝變笉鑳芥敼鍙樸倂ector鏄姩鎬佺┖闂達紝闅忕潃鍏冪礌鐨勫姞鍏ワ紝瀹冪殑鍐呴儴鏈哄埗浼氳嚜琛屾墿鍏呯┖闂翠互瀹圭撼鏂板厓绱犮傚洜姝わ紝vector鐨勮繍鐢ㄥ浜庡唴瀛樼殑鍚堢悊鍒╃敤涓庤繍鐢ㄧ殑鐏墊椿鎬ф湁寰堝ぇ鐨勫府鍔╋紝鎴戜滑鍐嶄篃涓嶅繀鍥犱負瀹蟲曠┖闂翠笉瓚寵屼竴寮濮嬭姹備竴涓ぇ鍧楃殑array銆?br />
vector鍔ㄦ佸鍔犲ぇ灝忥紝騫朵笉鏄湪鍘熺┖闂翠箣鍚庢寔緇柊絀洪棿錛堝洜涓烘棤娉曚繚璇佸師絀洪棿涔嬪悗灝氭湁鍙緵閰嶇疆鐨勭┖闂達級錛岃屾槸浠ュ師澶у皬鐨勪袱鍊嶅彟澶栭厤緗竴鍧楄緝澶х殑絀洪棿錛岀劧鍚庡皢鍘熷唴瀹規嫹璐濊繃鏉ワ紝鐒跺悗鎵嶅紑濮嬪湪鍘熷唴瀹逛箣鍚庢瀯閫犳柊鍏冪礌錛屽茍閲婃斁鍘熺┖闂淬傚洜姝わ紝瀵箆ector鐨勪換浣曟搷浣滐紝涓鏃﹀紩璧風┖闂撮噸鏂伴厤緗紝鎸囧悜鍘焩ector鐨勬墍鏈夎凱浠e櫒灝遍兘澶辨晥浜嗐?br />
錛堜簩錛塴ist瀹瑰櫒
鐩稿浜巚ector鐨勮繛緇┖闂達紝list灝辨樉寰楀鏉傝澶氾紝瀹冪殑濂藉鏄瘡嬈℃彃鍏ユ垨鍒犻櫎涓涓厓绱狅紝灝遍厤緗垨閲婃斁涓涓厓绱犵┖闂淬傚洜姝わ紝list瀵逛簬絀洪棿鐨勮繍鐢ㄦ湁緇濆鐨勭簿鍑嗭紝涓鐐逛篃涓嶆氮璐廣傝屼笖錛屽浜庝換浣曚綅緗殑鍏冪礌鎻掑叆鎴栧厓绱犵Щ闄わ紝list姘歌繙鏄父鏁版椂闂淬係TL涓殑list鏄竴涓弻鍚戦摼琛紝鑰屼笖鏄竴涓幆鐘跺弻鍚戦摼琛ㄣ?br />
錛堜笁錛塪eque瀹瑰櫒
 deque 鏄竴縐嶅弻鍚戝紑鍙g殑榪炵畫綰挎х┖闂淬傛墍璋撳弻鍚戝紑鍙o紝鎰忔濇槸鍙互鍦ㄩ槦灝句袱绔垎鍒仛鍏冪礌鐨勬彃鍏ュ拰鍒犻櫎鎿嶄綔銆俤eque鍜寁ector鐨勬渶澶у樊寮傦紝涓鍦ㄤ簬deque鍏佽浜庡父鏁版椂闂村唴瀵硅搗澶寸榪涜鍏冪礌鐨勬彃鍏ユ垨縐婚櫎鎿嶄綔錛屼簩鍦ㄤ簬deque娌℃湁鎵璋撳閲忚蹇碉紝鍥犱負瀹冩槸鍔ㄦ佸湴浠ュ垎孌佃繛緇┖闂寸粍鍚堣屾垚錛岄殢鏃跺彲浠ュ鍔犱竴孌墊柊鐨勭┖闂村茍閾炬帴鍦ㄤ竴璧楓傛崲鍙ヨ瘽璇達紝鍍弙ector閭f牱"鍥犳棫絀洪棿涓嶈凍鑰岄噸鏂伴厤緗竴鍧楁洿澶х┖闂達紝鐒跺悗澶嶅埗鍏冪礌錛屽啀閲婃斁鏃х┖闂?榪欐牱鐨勪簨鎯呭湪 deque鏄笉浼氬彂鐢熺殑銆?br />
deque鏄敱涓孌典竴孌電殑瀹氶噺榪炵畫絀洪棿鏋勬垚銆備竴鏃︽湁蹇呰鍦╠eque鐨勫墠绔垨灝劇澧炲姞鏂扮┖闂達紝渚塊厤緗竴孌靛畾閲忚繛緇┖闂達紝涓叉帴鍦ㄦ暣涓猟eque鐨勫ご绔垨灝劇銆俤eque鐨勬渶澶т換鍔★紝渚挎槸鍦ㄨ繖浜涘垎孌電殑瀹氶噺榪炵畫絀洪棿涓婏紝緇存姢鍏舵暣浣撹繛緇殑鍋囪薄錛屽茍鎻愪緵闅忔満瀛樺彇鐨勬帴鍙c傞伩寮浜?閲嶆柊閰嶇疆錛屽鍒訛紝閲婃斁"鐨勮疆鍥烇紝浠d環鍒欐槸澶嶆潅鐨勮凱浠e櫒鏋舵瀯銆傚洜涓烘湁鍒嗘榪炵畫綰挎х┖闂達紝灝卞繀欏繪湁涓ぎ鎺у埗錛岃屼負浜嗙淮鎸佹暣浣撹繛緇殑鍋囪薄錛屾暟鎹粨鏋勭殑璁捐鍙婅凱浠e櫒鍓嶈繘鍚庨絳夋搷浣滈兘棰囦負綣佺悙銆?br />
deque閲囩敤涓鍧楁墍璋撶殑map浣滀負涓繪帶銆傝繖閲岀殑map鏄竴灝忓潡榪炵畫絀洪棿錛屽叾涓瘡涓厓绱犻兘鏄寚閽堬紝鎸囧悜鍙︿竴孌佃繛緇嚎鎬х┖闂達紝縐頒負緙撳啿鍖恒傜紦鍐插尯鎵嶆槸deque鐨勫瓨鍌ㄧ┖闂翠富浣撱係GI STL鍏佽鎴戜滑鎸囧畾緙撳啿鍖哄ぇ灝忥紝榛樿鍊?琛ㄧず灝嗕嬌鐢?12 bytes緙撳啿鍖恒?br />
錛堝洓錛塻tack
stack 鏄竴縐嶅厛榪涘悗鍑猴紙First In Last Out , FILO錛夌殑鏁版嵁緇撴瀯銆傚畠鍙湁涓涓嚭鍙o紝stack 鍏佽鏂板鍏冪礌錛岀Щ闄ゅ厓绱狅紝鍙栧緱鏈欏剁鍏冪礌銆備絾闄や簡鏈欏剁澶栵紝娌℃湁浠諱綍鍏跺畠鏂規硶鍙互瀛樺彇stack鐨勫叾瀹冨厓绱狅紝stack涓嶅厑璁擱亶鍘嗚涓恒?br />
浠ユ煇縐嶅鍣ㄤ綔涓哄簳閮ㄧ粨鏋勶紝灝嗗叾鎺ュ彛鏀瑰彉錛屼嬌涔嬬鍚?#8220;鍏堣繘鍚庡嚭”鐨勭壒鎬э紝褰㈡垚涓涓猻tack錛屾槸寰堝鏄撳仛鍒扮殑銆俤eque鏄弻鍚戝紑鍙g殑鏁版嵁緇撴瀯錛岃嫢浠eque涓哄簳閮ㄧ粨鏋勫茍灝侀棴鍏跺ご绔紑鍙o紝渚胯交鑰屾槗涓懼湴褰㈡垚浜嗕竴涓猻tack.鍥犳錛孲GI STL 渚夸互deque浣滀負緙虹渷鎯呭喌涓嬬殑stack搴曢儴緇撴瀯錛岀敱浜巗tack 緋諱互搴曢儴瀹瑰櫒瀹屾垚鍏舵墍鏈夊伐浣滐紝鑰屽叿鏈夎繖縐?淇敼鏌愮墿鎺ュ彛錛屽艦鎴愬彟涓縐嶉璨?涔嬫ц川鑰咃紝縐頒負adapter錛堥厤鎺ュ櫒錛夛紝鍥犳錛孲TL stack 寰寰涓嶈褰掔被涓篶ontainer(瀹瑰櫒)錛岃岃褰掔被涓?container adapter.

(浜旓級 queue
queue鏄竴縐嶅厛榪涘厛鍑?First In First Out,FIFO) 鐨勬暟鎹粨鏋勩傚畠鏈変袱涓嚭鍙o紝queue鍏佽鏂板鍏冪礌錛岀Щ闄ゅ厓绱狅紝浠庢渶搴曠鍔犲叆鍏冪礌錛屽彇寰楁渶欏剁鍏冪礌銆備絾闄や簡鏈搴曠鍙互鍔犲叆錛屾渶欏剁鍙互鍙栧嚭澶栵紝娌℃湁浠諱綍鍏跺畠鏂規硶鍙互瀛樺彇queue鐨勫叾瀹冨厓绱犮?br />
浠ユ煇縐嶅鍣ㄤ綔涓哄簳閮ㄧ粨鏋勶紝灝嗗叾鎺ュ彛鏀瑰彉錛屼嬌涔嬬鍚?#8220;鍏堣繘鍏堝嚭”鐨勭壒鎬э紝褰㈡垚涓涓猶ueue錛屾槸寰堝鏄撳仛鍒扮殑銆俤eque鏄弻鍚戝紑鍙g殑鏁版嵁緇撴瀯錛岃嫢浠?deque涓哄簳閮ㄧ粨鏋勫茍灝侀棴鍏跺簳閮ㄧ殑鍑哄彛鍜屽墠绔殑鍏ュ彛錛屼究杞昏屾槗涓懼湴褰㈡垚浜嗕竴涓猶ueue.鍥犳錛孲GI STL 渚夸互deque浣滀負緙虹渷鎯呭喌涓嬬殑queue搴曢儴緇撴瀯錛岀敱浜巕ueue 緋諱互搴曢儴瀹瑰櫒瀹屾垚鍏舵墍鏈夊伐浣滐紝鑰屽叿鏈夎繖縐?淇敼鏌愮墿鎺ュ彛錛屽艦鎴愬彟涓縐嶉璨?涔嬫ц川鑰咃紝縐頒負adapter錛堥厤鎺ュ櫒錛夛紝鍥犳錛孲TL queue寰寰涓嶈褰掔被涓篶ontainer(瀹瑰櫒)錛岃岃褰掔被涓?container adapter.

(鍏?heap
heap騫朵笉褰掑睘浜嶴TL瀹瑰櫒緇勪歡錛屽畠鏄釜騫曞悗鑻遍泟錛屾壆婕攑riority queue鐨勫姪鎵嬨俻riority queue鍏佽鐢ㄦ埛浠ヤ換浣曟搴忓皢浠諱綍鍏冪礌鎺ㄥ叆瀹瑰櫒涓紝浣嗗彇鍑烘椂涓瀹氭寜浠庝紭鍏堟潈鏈楂樼殑鍏冪礌寮濮嬪彇銆傛寜鐓у厓绱犵殑鎺掑垪鏂瑰紡錛宧eap鍙垎涓簃ax-heap鍜宮in-heap涓ょ錛屽墠鑰呮瘡涓妭鐐圭殑閿?key)閮藉ぇ浜庢垨絳変簬鍏跺瓙鑺傜偣閿鹼紝鍚庤呯殑姣忎釜鑺傜偣閿?key)閮藉皬浜庢垨絳変簬鍏跺瓙鑺傜偣閿箋傚洜姝わ紝 max-heap鐨勬渶澶у煎湪鏍硅妭鐐癸紝騫舵繪槸浣嶄簬搴曞眰array鎴杤ector鐨勮搗澶村錛沵in-heap鐨勬渶灝忓煎湪鏍硅妭鐐癸紝浜︽繪槸浣嶄簬搴曞眰array鎴杤ector璧峰ご澶勩係TL 渚涘簲鐨勬槸max-heap錛岀敤c++瀹炵幇銆?br />鍫嗘帓搴廲璇█瀹炵幇
http://www.shnenglu.com/tankzhouqiang/archive/2011/03/21/142413.html

錛堜竷錛塸riority_queue
priority_queue鏄竴涓嫢鏈夋潈鍊艱蹇電殑queue,瀹冨厑璁稿姞鍏ユ柊鍏冪礌錛岀Щ闄ゆ棫鍏冪礌錛屽瑙嗗厓绱犲肩瓑鍔熻兘銆傜敱浜庤繖鏄竴涓猶ueue錛屾墍浠ュ彧鍏佽鍦ㄥ簳绔姞鍏ュ厓绱狅紝騫朵粠欏剁鍙栧嚭鍏冪礌錛岄櫎姝や箣澶栧埆鏃犲叾瀹冨瓨鍙栧厓绱犵殑閫斿緞銆俻riority_queue甯︽湁鏉冨艱蹇碉紝鍏跺唴鐨勫厓绱犲茍闈炰緷鐓ц鎺ㄥ叆鐨勬搴忔帓鍒楋紝鑰屾槸鑷姩渚濈収鍏冪礌鐨勬潈鍊兼帓鍒楋紙閫氬父鏉冨間互瀹炲艱〃紺猴級銆傛潈鍊兼渶楂樿咃紝鎺掑湪鏈鍓嶉潰銆傜己鐪佹儏鍐典笅priority_queue緋誨埄鐢ㄤ竴涓猰ax-heap瀹屾垚錛屽悗鑰呮槸涓涓互vector琛ㄧ幇鐨?complete binary tree.max-heap鍙互婊¤凍priority_queue鎵闇瑕佺殑"渚濇潈鍊奸珮浣庤嚜鍔ㄩ掑噺鎺掑簭"鐨勭壒鎬с?br />priority_queue瀹屽叏浠ュ簳閮ㄥ鍣ㄤ綔涓烘牴鎹紝鍐嶅姞涓奾eap澶勭悊瑙勫垯錛屾墍浠ュ叾瀹炵幇闈炲父綆鍗曘傜己鐪佹儏鍐典笅鏄互vector涓哄簳閮ㄥ鍣ㄣ俼ueue浠ュ簳閮ㄥ鍣ㄥ畬鎴愬叾鎵鏈夊伐浣溿傚叿鏈夎繖縐?淇敼鏌愮墿鎺ュ彛錛屽艦鎴愬彟涓縐嶉璨?涔嬫ц川鑰咃紝縐頒負adapter(閰嶆帴鍣?錛屽洜姝わ紝STL priority_queue寰寰涓嶈褰掔被涓篶ontainer(瀹瑰櫒)錛岃岃褰掔被涓篶ontainer adapter.

(鍏?set,multiset
set鐨勭壒鎬ф槸錛屾墍鏈夊厓绱犻兘浼氭牴鎹厓绱犵殑閿艱嚜鍔ㄨ鎺掑簭銆俿et鐨勫厓绱犱笉鍍弇ap閭f牱鍙互鍚屾椂鎷ユ湁瀹炲?value)鍜岄敭鍊?key), set 鍏冪礌鐨勯敭鍊煎氨鏄疄鍊鹼紝瀹炲煎氨鏄敭鍊鹼紝set涓嶅厑璁鎬袱涓厓绱犳湁鐩稿悓鐨勫箋俿et鏄氳繃綰㈤粦鏍戞潵瀹炵幇鐨勶紝鐢變簬綰㈤粦鏍戯紙RB-tree錛夋槸涓縐嶅鉤琛′簩鍙夋悳绱㈡爲錛岃嚜鍔ㄦ帓搴忕殑鏁堟灉寰堜笉閿欙紝鎵浠ユ爣鍑嗙殑STL鐨剆et鍗充互RB-Tree涓哄簳灞傛満鍒躲傚張鐢變簬set鎵寮鏀劇殑鍚勭鎿嶄綔鎺ュ彛錛孯B-tree涔熼兘鎻愪緵浜嗭紝鎵浠ュ嚑涔庢墍鏈夌殑set鎿嶄綔琛屼負錛岄兘鍙湁杞皟鐢≧B-tree鐨勬搷浣滆涓鴻屽凡銆?br />
multiset鐨勭壒鎬т互鍙婄敤娉曞拰set瀹屽叏鐩稿悓錛屽敮涓鐨勫樊鍒湪浜庡畠鍏佽閿奸噸澶嶏紝鍥犳瀹冪殑鎻掑叆鎿嶄綔閲囩敤鐨勬槸搴曞眰鏈哄埗RB-tree鐨刬nsert_equal()鑰岄潪insert_unique().

錛堜節錛塵ap,multimap
map鐨勭壒鎬ф槸錛屾墍鏈夊厓绱犻兘浼氭牴鎹厓绱犵殑閿艱嚜鍔ㄨ鎺掑簭銆俶ap鐨勬墍鏈夊厓绱犻兘鏄痯air,鍚屾椂鎷ユ湁瀹炲鹼紙value錛夊拰閿鹼紙key錛?  pair鐨勭涓鍏冪礌琚涓洪敭鍊鹼紝絎簩鍏冪礌琚涓哄疄鍊箋俶ap涓嶅厑璁鎬袱涓厓绱犳嫢鏈夌浉鍚岀殑閿?鐢變簬RB-tree鏄竴縐嶅鉤琛′簩鍙夋悳绱㈡爲錛岃嚜鍔ㄦ帓搴忕殑鏁堟灉寰堜笉閿欙紝鎵浠ユ爣鍑嗙殑STL map鍗充互RB-tree涓哄簳灞傛満鍒躲傚張鐢變簬map鎵寮鏀劇殑鍚勭鎿嶄綔鎺ュ彛錛孯B-tree涔熼兘鎻愪緵浜嗭紝鎵浠ュ嚑涔庢墍鏈夌殑map鎿嶄綔琛屼負錛岄兘鍙槸杞皟RB-tree鐨勬搷浣滆涓恒?br />multimap鐨勭壒鎬т互鍙婄敤娉曚笌map瀹屽叏鐩稿悓錛屽敮涓鐨勫樊鍒湪浜庡畠鍏佽閿奸噸澶嶏紝鍥犳瀹冪殑鎻掑叆鎿嶄綔閲囩敤鐨勬槸搴曞眰鏈哄埗RB-tree鐨刬nsert_equal()鑰岄潪insert_unique銆?


鍛ㄥ己 2011-06-02 11:28 鍙戣〃璇勮
]]>
STL婧愮爜鍒嗘瀽絀洪棿閰嶇疆鍣?/title><link>http://www.shnenglu.com/tankzhouqiang/archive/2011/05/12/146238.html</link><dc:creator>鍛ㄥ己</dc:creator><author>鍛ㄥ己</author><pubDate>Thu, 12 May 2011 02:19:00 GMT</pubDate><guid>http://www.shnenglu.com/tankzhouqiang/archive/2011/05/12/146238.html</guid><wfw:comment>http://www.shnenglu.com/tankzhouqiang/comments/146238.html</wfw:comment><comments>http://www.shnenglu.com/tankzhouqiang/archive/2011/05/12/146238.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.shnenglu.com/tankzhouqiang/comments/commentRss/146238.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/tankzhouqiang/services/trackbacks/146238.html</trackback:ping><description><![CDATA[       鐪嬭繃STL絀洪棿閰嶇疆鍣ㄧ殑婧愮爜錛屾葷粨涓涓嬶細<br>      (1)STL絀洪棿閰嶇疆鍣細涓昏鍒嗕笁涓枃浠跺疄鐜幫紝stl_construct.h  榪欓噷瀹氫箟浜嗗叏灞鍑芥暟construct()鍜宒estroy(),璐熻矗瀵硅薄鐨勬瀯閫犲拰鏋愭瀯銆俿tl_alloc.h鏂囦歡涓畾涔変簡涓錛屼簩涓ょ駭閰嶇疆鍣紝褰兼鍚堜綔錛岄厤緗櫒鍚嶄負alloc. stl_uninitialized.h 榪欓噷瀹氫箟浜嗕竴浜涘叏灞鍑芥暟錛岀敤鏉ュ~鍏?fill)鎴栧鍒?copy)澶у潡鍐呭瓨鏁版嵁錛屼粬浠篃閮介毝灞炰簬STL鏍囧噯瑙勫垝銆?br>      鍦╯tl_alloc.h涓畾涔変簡涓ょ駭閰嶇疆鍣紝涓昏鎬濇兂鏄敵璇峰ぇ鍧楀唴瀛樻睜錛屽皬鍧楀唴瀛樼洿鎺ヤ粠鍐呭瓨姹犱腑鐢寵錛屽綋涓嶅鐢ㄦ椂鍐嶇敵璇鋒柊鐨勫唴瀛樻睜錛岃繕鏈夊氨鏄ぇ鍧楀唴瀛樼洿鎺ョ敵璇楓傚綋鐢寵絀洪棿澶т簬128瀛楄妭鏃惰皟鐢ㄧ涓綰ч厤緗櫒錛岀涓綰ч厤緗櫒娌℃湁鐢╫perator::new鍜宱perator::delete鏉ョ敵璇風┖闂達紝鑰屾槸鐩存帴璋冪敤malloc/free鍜宺ealloc錛屽茍涓斿疄鐜頒簡綾諱技c++涓璶ew-handler鐨勬満鍒躲傛墍璋揷++ new handler鏈哄埗鏄紝浣犲彲浠ヨ姹傜郴緇熷湪鍐呭瓨閰嶇疆闇姹傛棤娉曡婊¤凍鏃訛紝璋冪敤涓涓寚瀹氱殑鍑芥暟銆傛崲鍙ヨ瘽璇達紝涓鏃?:operator::new鏃犳硶瀹屾垚浠誨姟錛屽湪涓㈠嚭std::bad_alloc寮傚父鐘舵佷箣鍓嶏紝浼氬厛璋冪敤鐢卞绔寚瀹氱殑澶勭悊渚嬬▼錛岃澶勭悊渚嬬▼閫氬父縐頒負new-handler.new-handler瑙e喅鍐呭瓨鍋氭硶鏈夌壒瀹氱殑妯″紡銆係GI絎竴綰ч厤緗櫒鐨刟llocate()鍜宺ealloc閮芥槸鍦ㄨ皟鐢╩alloc鍜宺ealloc涓嶆垚鍔熷悗錛屾敼璋冪敤oom_malloc()鍜宱om_realloc().鍚庝袱鑰呴兘鏈夊唴寰幆錛屼笉鏂皟鐢?鍐呭瓨涓嶈凍澶勭悊渚嬬▼",鏈熸湜鍦ㄦ煇嬈¤皟鐢ㄤ箣鍚庯紝鑾峰緱瓚沖鐨勫唴瀛樿屽渾婊″畬鎴愪換鍔°備絾濡傛灉“鍐呭瓨涓嶈凍澶勭悊渚嬬▼“騫舵湭琚绔瀹氾紝oom_malloc()鍜宱om_realloc渚胯皟鐢╛THROW_BAD_ALLOC, 涓㈠嚭bad_alloc寮傚父淇℃伅錛屾垨鍒╃敤exit(1)紜敓鐢熶腑姝㈢▼搴忋?br>     鍦╯tl_alloc.h涓畾涔夌殑絎簩綰ч厤緗櫒涓紝濡傛灉鍖哄潡澶熷ぇ錛岃秴榪?28瀛楄妭鏃訛紝灝辯Щ浜ょ涓綰ч厤緗櫒澶勭悊錛屽綋鍖哄潡灝忎簬128瀛楄妭鏃訛紝鍒欎互鍐呭瓨姹犵鐞嗭紝姝ゆ硶鍙堢О涓烘灞傞厤緗紝姣忔閰嶇疆涓澶у潡鍐呭瓨錛屽茍緇存姢瀵瑰簲鐨勮嚜鐢遍摼琛?free-list).涓嬫鑻ュ啀鏈夌浉鍚屽ぇ灝忕殑鍐呭瓨闇姹傦紝灝辯洿鎺ヤ粠free-list涓嫈鍑恒傚鏋滃绔噴榪樺皬棰濆尯鍧楋紝灝辯敱閰嶇疆鍣ㄥ洖鏀跺埌free-lists涓紝閰嶇疆鍣ㄩ櫎浜嗚礋璐i厤緗紝涔熻礋璐e洖鏀躲備負浜嗙鐞嗘柟渚匡紝SGI絎簩綰ч厤緗櫒浼氫富鍔ㄥ皢浠諱綍灝忛鍖哄潡鐨勫唴瀛橀渶姹傞噺涓婅皟鑷?鐨勫嶆暟銆傚茍緇存姢16涓猣ree-lists,鍚勮嚜綆$悊澶у皬鍒嗗埆涓?錛?6錛?4錛?2錛?0錛?8錛?6錛?4錛?2錛?0錛?8錛?6錛?04錛?112錛?20錛?28 瀛楄妭鐨勫皬棰濆尯鍧椼傚綋鐢寵灝忎簬絳変簬128瀛楄妭鏃跺氨浼氭鏌ュ搴旂殑free list錛屽鏋渇ree-list涓湁鍙敤鐨勫尯鍧楋紝灝辯洿鎺ユ嬁鏉ワ紝濡傛灉娌℃湁錛屽氨鍑嗗涓哄搴旂殑free-list 閲嶆柊濉厖絀洪棿銆傛柊鐨勭┖闂村皢鍙栬嚜鍐呭瓨姹狅紝緙虹渷鍙栧緱20涓柊鑺傜偣錛屽鏋滃唴瀛樻睜涓嶈凍錛堣繕瓚充互涓涓互涓婄殑鑺傜偣錛夛紝灝辮繑鍥炵殑鐩稿簲鐨勮妭鐐規暟.濡傛灉褰撳唴瀛樻睜涓繛涓涓妭鐐瑰ぇ灝忛兘涓嶅鏃訛紝灝辯敵璇鋒柊鐨勫唴瀛樻睜,澶у皬涓?*total_bytes+ROUND_UP(heap_size>>4), totoal_bytes 涓虹敵璇風殑絀洪棿澶у皬錛孯OUND_UP璋冩暣涓?鐨勫嶆暟錛宧eap_size涓哄綋鍓嶆葷敵璇峰唴瀛樻睜鐨勫ぇ灝忋傚鏋滅敵璇瘋鍐呭瓨姹犳垚鍔熷氨鎶婂師鏉ュ唴瀛樻睜涓墿涓嬬殑絀洪棿鍒嗛厤緇欓傚綋鐨刦ree-list.涓囦竴灞辯┓姘村敖錛屾暣涓猻ystem heap絀洪棿閮戒笉澶熶簡錛堜互鑷蟲棤娉曚負鍐呭瓨姹犳敞鍏ユ簮澶存椿姘達級錛宮alloc()琛屽姩澶辮觸錛屽氨浼氬洓澶勫鎵炬湁鏃?灝氭湁鏈敤鍖哄潡錛屼笖鍖哄潡瓚沖澶?"涔媐ree lists.鎵懼埌浜嗗氨鎸栦竴鍧椾氦鍑猴紝鎵句笉鍒板氨璋冪敤絎竴綰ч厤緗櫒銆傜涓綰ч厤緗櫒鍏跺疄涔熸槸浣跨敤malloc鏉ラ厤緗唴瀛樸備絾瀹冩湁out-of-memory澶勭悊鏈哄埗錛堢被浼糿ew-handler鏈哄埗錛夛紝鎴栬鏈夋満浼氶噴鏀懼叾浠栫殑鍐呭瓨鎷挎潵姝ゅ浣跨敤銆傚鏋滃彲浠ュ氨鎴愬姛錛屽惁鍒欏彂鍑篵ad_alloc寮傚父銆?br><br>鍙傝冿細STL婧愮爜鍒嗘瀽<br><br> <img src ="http://www.shnenglu.com/tankzhouqiang/aggbug/146238.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/tankzhouqiang/" target="_blank">鍛ㄥ己</a> 2011-05-12 10:19 <a href="http://www.shnenglu.com/tankzhouqiang/archive/2011/05/12/146238.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>涓涓畝鍗曠殑絀洪棿閰嶇疆鍣?/title><link>http://www.shnenglu.com/tankzhouqiang/archive/2011/05/04/145617.html</link><dc:creator>鍛ㄥ己</dc:creator><author>鍛ㄥ己</author><pubDate>Tue, 03 May 2011 16:55:00 GMT</pubDate><guid>http://www.shnenglu.com/tankzhouqiang/archive/2011/05/04/145617.html</guid><wfw:comment>http://www.shnenglu.com/tankzhouqiang/comments/145617.html</wfw:comment><comments>http://www.shnenglu.com/tankzhouqiang/archive/2011/05/04/145617.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/tankzhouqiang/comments/commentRss/145617.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/tankzhouqiang/services/trackbacks/145617.html</trackback:ping><description><![CDATA[     浠TL鐨勮繍鐢ㄨ搴﹁岃█錛岀┖闂撮厤緗櫒鏃舵渶涓嶉渶瑕佷粙緇嶇殑涓滆タ錛屽畠鎬繪槸闅愯棌鍦ㄤ竴鍒囩粍浠剁殑鑳屽悗錛屾暣涓猄TL鐨勬搷浣滃璞★紙鎵鏈夌殑鏁板鹼級閮藉瓨鏀懼湪瀹瑰櫒涔嬪唴錛岃屽鍣ㄤ竴瀹氶渶瑕侀厤緗┖闂翠互緗斁璧勬枡銆備笅闈㈡槸涓涓畝鍗曠┖闂撮厤緗櫒浠g爜錛堟潵鑷?STL婧愮爜鍓栨瀽錛夛細<br>//jjalloc.h<br>#ifndef _JJALLOC_<br>#define _JJALLOC_<br><br>#include<new><br>#include<cstddef><br>#include<cstdlib><br>#include<climits><br>#include<iostream><br><br>using namespace std;<br><br>namespace JJ<br>{<br>template<class T><br>    inline T* _allocate(ptrdiff_t size,T*)<br>    {<br>        set_new_handler(0);<br>        T *tmp=(T*)(::operator new((size_t)(size* sizeof(T))));<br>        if(tmp==0){<br>            cerr<<"out of memory"<<endl;<br>            exit(1);<br>        }<br>        return tmp;<br>    }<br><br>template<class T><br>    inline void _deallocate(T* buffer)<br>    {<br>        ::operator delete(buffer);<br>    }<br><br>template<class T1,class T2><br>    inline void _construct(T1 *p,const T2& value)<br>    {<br>        new(p)T1(value);//placement new operator<br>    }<br><br>template<class T><br>    inline void _destroy(T* ptr)<br>    {<br>        ptr->~T();<br>    }<br><br>template<class T>class allocator{<br>    public:<br>        typedef    T    value_type;<br>        typedef T*    pointer;<br>        typedef const T*    const_pointer;<br>        typedef T&    reference;<br>        typedef const T&    const_reference;<br>        typedef size_t    size_type;<br>        typedef ptrdiff_t    difference_type;<br><br>        template<class U><br>        struct rebind<br>        {<br>            typedef allocator<U>other;<br>        };<br><br>        pointer allocate(size_type n,const void * hint=0)<br>        {<br>            return _allocate((difference_type)n,(pointer)0);<br>        }<br><br>        void deallocate(pointer p,size_type n)<br>        {<br>            _deallocate(p);<br>        }<br><br>        void construct(pointer p,const T& value)<br>        {<br>            _construct(p,value);<br>        }<br><br>        void destroy(pointer p){_destroy(p);}<br><br>        pointer address(reference x){return (pointer)&x;}<br><br>        const_pointer const_address(const_reference x)<br>        {<br>            return (const_pointer)&x;<br>        }<br><br>        size_type max_size()const{<br>            return size_type(UINT_MAX/sizeof(T));<br>        }<br>};<br>}//end of namespace JJ<br><br>#endif<br><br><br>//jjalloc.cc,嫻嬭瘯涓婇潰榪欎釜綆鍗曠殑閰嶇疆鍣?br>#include"jjalloc.h"<br>#include<vector><br>#include<iostream><br><br>using namespace std;<br><br>int main()<br>{<br>    int ia[5]={0,1,2,3,4};<br>    unsigned int i;<br><br>    vector<int,JJ::allocator<int> >iv(ia,ia+5);<br><br>    for(i=0;i<iv.size();i++)<br>        cout<<iv[i]<<' ';<br>    cout<<endl;<br>} <br><br> <br><br><img src ="http://www.shnenglu.com/tankzhouqiang/aggbug/145617.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/tankzhouqiang/" target="_blank">鍛ㄥ己</a> 2011-05-04 00:55 <a href="http://www.shnenglu.com/tankzhouqiang/archive/2011/05/04/145617.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.tbssyc.cn" target="_blank">Xx性欧美肥妇精品久久久久久</a>| <a href="http://www.oysport.cn" target="_blank">亚洲国产另类久久久精品</a>| <a href="http://www.officene.com.cn" target="_blank">狠狠色狠狠色综合久久</a>| <a href="http://www.xnzsy.cn" target="_blank">久久精品这里只有精99品</a>| <a href="http://www.yuleluntan.cn" target="_blank">国产日韩欧美久久</a>| <a href="http://www.yingongshe.cn" target="_blank">国内精品久久久久久久久电影网</a>| <a href="http://www.510dpw.cn" target="_blank">久久精品国产久精国产</a>| <a href="http://www.wtem.cn" target="_blank">色偷偷888欧美精品久久久</a>| <a href="http://www.dlwz8.cn" target="_blank">久久96国产精品久久久</a>| <a href="http://www.4wfgg.cn" target="_blank">色综合久久综精品</a>| <a href="http://www.fjhby.cn" target="_blank">久久精品国产亚洲精品</a>| <a href="http://www.kk995.cn" target="_blank">欧美久久天天综合香蕉伊</a>| <a href="http://www.tbssyc.cn" target="_blank">久久亚洲av无码精品浪潮</a>| <a href="http://www.u33g.cn" target="_blank">久久久久高潮综合影院</a>| <a href="http://www.vtsg.cn" target="_blank">少妇人妻88久久中文字幕</a>| <a href="http://www.qinghaichu.cn" target="_blank">欧美丰满熟妇BBB久久久</a>| <a href="http://www.wxpk10.cn" target="_blank">国产成人久久激情91</a>| <a href="http://www.a3314.cn" target="_blank">久久精品成人免费网站</a>| <a href="http://www.0371trip.cn" target="_blank">久久精品99无色码中文字幕</a>| <a href="http://www.ahlgw.cn" target="_blank">少妇被又大又粗又爽毛片久久黑人</a>| <a href="http://www.denstone.cn" target="_blank">免费一级欧美大片久久网</a>| <a href="http://www.qeckf.cn" target="_blank">狠狠色综合网站久久久久久久高清</a>| <a href="http://www.gbdv.cn" target="_blank">青青草原精品99久久精品66</a>| <a href="http://www.jianzhuhr.net.cn" target="_blank">国产精品一久久香蕉国产线看观看 </a>| <a href="http://www.baicar.cn" target="_blank">欧美久久久久久</a>| <a href="http://www.td265.cn" target="_blank">亚洲中文字幕无码久久精品1</a>| <a href="http://www.yy1122.cn" target="_blank">久久久久久久久无码精品亚洲日韩</a>| <a href="http://www.fimtb.cn" target="_blank">嫩草影院久久99</a>| <a href="http://www.510dpw.cn" target="_blank">开心久久婷婷综合中文字幕</a>| <a href="http://www.sangaotang.cn" target="_blank">亚洲午夜久久久影院伊人</a>| <a href="http://www.mumahack.com.cn" target="_blank">国产国产成人精品久久</a>| <a href="http://www.baoshuidaili.com.cn" target="_blank">久久久久久噜噜精品免费直播</a>| <a href="http://www.dingtalk.org.cn" target="_blank">久久久久av无码免费网</a>| <a href="http://www.yoyopj.cn" target="_blank">狠狠狠色丁香婷婷综合久久五月</a>| <a href="http://www.hrtravel.cn" target="_blank">久久久人妻精品无码一区</a>| <a href="http://www.fwrld.cn" target="_blank">日韩精品久久久久久久电影蜜臀 </a>| <a href="http://www.oy14.cn" target="_blank">久久人人爽人人爽人人片AV不</a>| <a href="http://www.jbeq.cn" target="_blank">99久久99久久精品国产</a>| <a href="http://www.niguoyi.cn" target="_blank">国产精品久久久久久久app </a>| <a href="http://www.jinshengsuliao.cn" target="_blank">99麻豆久久久国产精品免费</a>| <a href="http://www.sj0524.cn" target="_blank">久久99精品久久久久久齐齐</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>