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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

stl_alloc.h分配器

發(fā)布時間:2023/12/20 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 stl_alloc.h分配器 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

五、分配器:

5.1、頭文件:

  5.1.1、include<stl_alloc.h> //內存的分配。

  5.1.2、include<stl_construct.h> //對象的構造和析構。

  5.1.3、include<uninitialized.h> //對空間中的內存進行操作、 操作效率高。

5.2、分配,釋放:

5.2.1static void* allocate(size_t __n) //申請獲得所需的這段空間,然后返回。       {void* __result = malloc(__n);if (0 == __result) __result = _S_oom_malloc(__n); //如果分配失敗就循環(huán)的進行搜索return __result;}5.2.2static void deallocate(void* __p, size_t /* __n */) //在標準的接口中做的都是適合大眾的東西, 后期需要 simple_alloc 這樣的一個類來進行包裝, { //使其變成一個統(tǒng)一的接口,         free(__p);} 5.2.3static void* reallocate(void* __p, size_t /* old_sz */, size_t __new_sz){void* __result = realloc(__p, __new_sz);if (0 == __result) __result = _S_oom_realloc(__p, __new_sz);//如果分配失敗就循環(huán)的進行搜索return __result;}

5.4、兩級分配:

  5.4.1、一級分配器:__malloc_alloc_template

  5.4.2、二級分配器:__default_alloc_template

5.5、統(tǒng)一接口:

  simple_alloc template<class _Tp, class _Alloc>class simple_alloc //提供了一個統(tǒng)一的接口,調用起來更加的方便。 {          //在這個統(tǒng)一的接口中我們能申請我們需要的類型的內存空間大小。 public:static _Tp* allocate(size_t __n){ return 0 == __n ? 0 : (_Tp*) _Alloc::allocate(__n * sizeof (_Tp));}static _Tp* allocate(void){return (_Tp*) _Alloc::allocate(sizeof (_Tp));}static void deallocate(_Tp* __p, size_t __n){ if (0 != __n) _Alloc::deallocate(__p, __n * sizeof (_Tp)); }static void deallocate(_Tp* __p){_Alloc::deallocate(__p, sizeof (_Tp));} };

?

轉載于:https://www.cnblogs.com/xiaohaige/p/6786533.html

總結

以上是生活随笔為你收集整理的stl_alloc.h分配器的全部內容,希望文章能夠幫你解決所遇到的問題。

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