我正在開發一個外部存儲器數據結構,並且我需要將數據放入一個向量結構中,以便自動進行交換(也許使用LRU策略)以保持固定的RAM內存。我試過stxxl向量結構,但問題是它不能存儲動態結構,如std::vector
。這是行不通的:外部存儲器向量
stxxl::vector< std::vector<T> >
是否有任何外部存儲器結構的庫可以處理這些類型的元素?
我正在開發一個外部存儲器數據結構,並且我需要將數據放入一個向量結構中,以便自動進行交換(也許使用LRU策略)以保持固定的RAM內存。我試過stxxl向量結構,但問題是它不能存儲動態結構,如std::vector
。這是行不通的:外部存儲器向量
stxxl::vector< std::vector<T> >
是否有任何外部存儲器結構的庫可以處理這些類型的元素?
stxxl::vector
的模板參數是包含項的類型, 但std::vector
不是一個類型,它缺少它的模板參數。
嘗試例如stxxl::vector<std::vector<int> >
或創建 圍繞stxxl::vector
的封閉模板類如果您想要 參數化std::vector
的itemtype。
UPDATE: 經過一番研究,我發現這對Stxxl:常見問題的第一頁 http://algo2.iti.kit.edu/stxxl/trunk/FAQ.html
參數化STXXL集裝箱
STXXL容器類型,如stxxl ::矢量可以參數化爲 ,其值類型是POD(即,沒有虛擬功能,沒有 用戶定義的副本分配/析構函數等),並且不是c向內部存儲器提供 引用(包括指針)。通常,「複雜」的數據類型不符合這個要求。
這就是爲什麼
stxxl::vector<std::vector<T> >
和stxxl::vector<stxxl::vector<T> >
無效。如果適用,請使用std::vector<stxxl::vector<T> >
,或者通過 模擬一個二維數組進行索引計算。
我不知道stxxl是什麼,但你有沒有試過這個「stxxl :: vector>」? –
Arunmu
是的,但是當我插入大量數據時,這會產生不一致的值 – darkloz