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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

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

發布時間:2023/12/1 c/c++ 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VC6、BC5、G2.9标准分配器一览 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

    • VC6標準分配器
    • BC5標準分配器
    • G2.9標準分配器

VC6標準分配器

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

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

BC5標準分配器

與VC情況完全一樣。

現在已知標準庫提供的分配器都是直接調用malloc,每個容器內部都會存在一個cookie。cookie作用是記錄區塊的大小,只有在區塊大小一樣的情況下才能簡化cookie存在。容器中每個元素大小一樣,所以可以不用cookie。

G2.9標準分配器

與上面一致,沒有特殊設計。但是所有容器都沒有使用到標準分配器std::allocator,而是使用std::alloc。

alloc是個classtype,allocate是其內部的靜態函數,所以可以出現alloc::allocate()、alloc::deallocate()的用法。
注意alloc::allocate(512)表示分配了512個字節,而非VC下的元素類型
G2.9的std::alloc在G4.9轉變為__gnu_cxx::__pool_alloc,內容也做了一些修改。alloc或者說__pool_alloc的好處就是省掉了相同元素的cookie。

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。