allocator

    1熱度

    1回答

    給定一個非無狀態自定義分配器A(比如,競技場分配器,綁定到運行時已知大小的一些連續內存塊)和類S,其中包含AllocatorAwareContainer類型的文件夾: struct S { A() = default; // another c-tors std::vector<T> v; std::shared_ptr<U> s; }; 我想用A的

    0熱度

    1回答

    我寫了一個自定義分配,我使用的是std :: vector。代碼在調試模式下編譯和工作,但它無法在發佈模式下編譯並出現奇怪的錯誤。 這裏是我的分配器: template< class T > class AllocPowOf2 { public: typedef size_t size_type; typedef ptrdiff_t difference_type;

    0熱度

    1回答

    我有一個內存分配需要,我將需要一堆整數給定的「操作」。 這個「操作」持續幾微秒,幾乎總是我不需要任何內存。假設有70%的時間。 剩下的時間,我需要一個或兩個,有時更多。我知道這個數字永遠不會超過32768(2^15)。 我應該先分配128KB的內存,然後保留一個指向頭部的指針。只要我的操作結束,我將指針重置爲0. 這是一個緩存友好的分配器?

    8熱度

    2回答

    我正在嘗試使用std::unique_ptr<T[]>自定義內存分配器。基本上,我有一個是IAllocator,它提供了以下方法子類自定義的分配: void* Alloc(size_t size) template<typename T> T* AllocArray(size_t count) void Free(void* mem) template<typename T> void Fr

    1熱度

    3回答

    我正在學習C++放置新的代碼。 class Cell { public: Cell() { printf("default constructor by %s\n", __func__); } Cell(int ina) : a(ina) { printf("customized constructor.\n"); }

    1熱度

    2回答

    Q#2更新。請回答新的Q#2! - Dannyu NDos,2017年1月17日 我一直在製作一個名爲DRV的關聯容器,它代表了一個有限的離散隨機變量。這是一棵紅黑色的樹。我從標準std::map得到了幫助,但我也對此產生了困惑。 Q#1。它的拷貝如何具有O(n)時間複雜度?它不應該是O(n log n)嗎?不過,我的DRV的拷貝文件有O(log n),使用std::async。 舊Q#2。爲什麼

    1熱度

    1回答

    我有一個類型。我在我的應用程序的不同部分實例化它,但是我在某個地方循序遍歷所有這些部分。我不知道最終會有多少人。我如何創建一個分配器來存儲100個對象塊並按需提供指針? 我曾嘗試這樣的方法用一個簡單的工廠類固醇但它goes over 5 seconds: #include <iostream> #include <vector> #include <unordered_map> #inclu

    1熱度

    1回答

    是否有可能在禁止例外情況下使用allocate_shared(fno-exceptions),並且分配器返回nullptr而不是拋出分配失敗?這意味着有一個圍繞allocate_shared的包裝,當內存分配失敗時返回一個空的shared_ptr。我正在尋找能夠與GCC(libstdC++),Clang(libC++)和MSVC一起工作的東西。 當前想法:對控制塊的大小設置一些上限,並且如果可以預

    0熱度

    1回答

    我有一個程序(全碼here),其圍繞所述第四萬六千迭代退出: { PROCESSER<MONO_CONT> processer; c_start = std::clock(); for (unsigned long long i = 0; i < iterations; i++) { BloombergLP::bdlma::BufferedSequenti

    1熱度

    3回答

    請小例子。我試過在文檔中使用這個,但我無法理解如何。 消息: main.cpp|97|error: no matching function for call to 'CryptoPP::SecBlock<unsigned char>::operator+=(CryptoPP::SecBlock<unsigned char>*)' secblock.h|568|note: ca