allocator

    8熱度

    2回答

    我有兩個問題: 1)是否可以實現一個分配器,它使用alloca來分配堆棧上的內存,否則C++ STL兼容? 如果有代碼存在,您可以通過簡單地將我指向URL來讓我高興。 :-) 如果沒有代碼出現,也許你可以勾畫函數分配和釋放? 2)如果對上述問題的回答是'是',我想了解如何爲班級成員分配堆棧內存。作爲一個例子,考慮一個 std::vector<int, AllocaAllocator<int> >

    2熱度

    2回答

    是否有可能在C++中重載stl :: map的allocator/deallocator?如果是,那麼如何? 任何幫助,將不勝感激。

    2熱度

    2回答

    我正在尋找在C++關聯容器,在那裏,而不是要求它的元素是缺省構造,可將拋出其中一個關鍵的要求也不例外發現 - 編輯:在適當的功能,顯然不是所有的都需要默認構造。這基本上是因爲我將標準分配器替換爲一個家庭電話,並告訴主對象有多少內存正在分配,因此需要知道「家」在哪裏。

    1熱度

    1回答

    這是一個設計問題,假設C++和引用計數對象層次結構。我的代碼庫中的很多類都來自公共基類(ObjectBase),它實現了retain()和release()方法來增加和減少對象實例的引用計數。 對象的每個實例都可以使用多個用戶可定義的內存分配器在堆棧或堆上創建。如果retainCount達到0,爲了讓對象實例在release()方法中自殺(刪除這個),實例必須知道它已經構建了哪個分配器。現在,我使

    1熱度

    2回答

    我與C++中的第三方C API集,有討論關注兩種方式工作: 它等同的malloc():the_api_malloc(大小)(加上匹配the_api_free() ) 其中存儲器與the_api_malloc創建()返回到一個函數具有的,並the_api_free()的所有權它在內部:the_api_give_back(PTR) 我已創建自定義分配器wrapp ing the_api_malloc(

    0熱度

    1回答

    我寫了一個類似列表的模板類sll(單鏈表)。現在,我正在嘗試將分配器插入它。我有默認的分配器,分配器和一個基於池的分配器,pool_allocator。這些是在STL分配器接口之後設計的,但我需要將分配器處理的元素數量(max_size)作爲模板參數添加。所以,我做了以下。 enum {Default_1 = 16}; // for example template <typename T,

    2熱度

    1回答

    我構建應該模仿std :: string類的功能的簡單類(作爲練習!): #ifndef _STR12_1_H #define _STR12_1_H #include <string> #include <iostream> class Str12_1 { public: typedef char* iterator; typedef const char*

    10熱度

    5回答

    看看vector,我意識到我在創建向量時從未使用過第二個參數。 std::vector<int> myInts; // this is what I usually do std::vector<int, ???> myOtherInts; // but is there a second argument there? 在鏈路上面看它說這是: 分配器對象來代替構造一個新的。 ,或者作爲用於

    6熱度

    5回答

    有沒有人知道STL實現允許在使用前將動態分配器傳遞到容器的實例。 的情況是,我們有一個管理的若干內存池和發言權STL ::向量的每個實例,我們想從一個內存池不同的分配每個實例的通用內存分配器。 與標準STL實現的問題是,你只能定義一個基礎型內存池即所有載體類型爲int的將來自同一個池中分配。 我已經換掉了我們默認的stl :: allocator,它有一個狀態,即我們想從這個實例分配這個實例的池,

    2熱度

    1回答

    我正在爲C/C++編寫一個垃圾回收器作爲編程練習,其中一部分涉及全局重寫new。但是,垃圾收集器也使用unordered_map(用於存儲指向已分配塊的指針),如果地圖嘗試使用重寫的新建(它將嘗試無限循環,我認爲),則事情將嚴重混亂。要創建它,我想用安置新來避免調用重寫新: void *buffer = malloc(sizeof(unordered_map<void *, mem_t *>));