日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

VC6、BC5、G2.9标准分配器一览

發(fā)布時(shí)間:2023/12/1 c/c++ 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VC6、BC5、G2.9标准分配器一览 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

    • VC6標(biāo)準(zhǔn)分配器
    • BC5標(biāo)準(zhǔn)分配器
    • G2.9標(biāo)準(zhǔn)分配器

VC6標(biāo)準(zhǔn)分配器

VCx中源碼可以在電腦路徑中找:
[D:\Program Files\VisualStudio\Community\VC\Tools\MSVC\14.28.29333\include\xmemory]
不過(guò)太多了。大概在837行左右有關(guān)于allocator代碼。還是先看侯捷PPT上的吧。

在VC中使用容器,都是通過(guò)allocator取得的。allocator都是通過(guò)調(diào)用malloc函數(shù),所以都會(huì)有cookie。
分配類型是通過(guò)元素類型為單位的。
具體用法可以參考https://docs.microsoft.com/zh-cn/cpp/standard-library/allocators-header?view=msvc-160官方文檔。

BC5標(biāo)準(zhǔn)分配器

與VC情況完全一樣。

現(xiàn)在已知標(biāo)準(zhǔn)庫(kù)提供的分配器都是直接調(diào)用malloc,每個(gè)容器內(nèi)部都會(huì)存在一個(gè)cookie。cookie作用是記錄區(qū)塊的大小,只有在區(qū)塊大小一樣的情況下才能簡(jiǎn)化cookie存在。容器中每個(gè)元素大小一樣,所以可以不用cookie。

G2.9標(biāo)準(zhǔn)分配器

與上面一致,沒(méi)有特殊設(shè)計(jì)。但是所有容器都沒(méi)有使用到標(biāo)準(zhǔn)分配器std::allocator,而是使用std::alloc。

alloc是個(gè)classtype,allocate是其內(nèi)部的靜態(tài)函數(shù),所以可以出現(xiàn)alloc::allocate()、alloc::deallocate()的用法。
注意alloc::allocate(512)表示分配了512個(gè)字節(jié),而非VC下的元素類型
G2.9的std::alloc在G4.9轉(zhuǎn)變?yōu)開(kāi)_gnu_cxx::__pool_alloc,內(nèi)容也做了一些修改。alloc或者說(shuō)__pool_alloc的好處就是省掉了相同元素的cookie。

總結(jié)

以上是生活随笔為你收集整理的VC6、BC5、G2.9标准分配器一览的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。