這個問題有點難以描述,所以如果不清楚,請耐心等待。共享單個變量的列表?
我想實現一個單一的,普遍可訪問[到裏面的物品]頭,尾和Iter項目指針一個雙向鏈表 - 這樣可大大減少開銷的內存和處理/訪問時間...
靜態差不多履行這個角色 - 除了它共享所有類相同的類 - 這是我不想要的(因爲我可能有多個雙向鏈表 - 我需要每個列表一個,而不是每個類一個]。所以我需要的是類似於靜態的東西,除了它被本地化爲不同的聲明。
頭部/節點方法變得複雜(特別是因爲它使用模板),我想不惜一切代價避免這種情況。 Head只是具有Node [Node所以可以訪問]的重複函數,這看起來浪費並且增加了複雜度,只是爲了具有三個局部通用變量。
我想什麼是類似於此:
class Test
{
private:
static Test *Head; //Single universal declaration!
static Test *End;
static Test *Iter;
//etc etc
};
除...
Test A; //Set of 'static' variables 'unique' to A
Test B; //Set of 'static' variables 'unique' to B
我願意接受任何和所有的解決問題的方法,但請避免複雜解決方案 - 這是一種改進,需要快速簡單地實施。
附加信息[按請求]: 沒有一個「問題」本身[一邊避免開銷和設計方面] - 這是爲其它幾類的幀作品/地面工作/函數來構建。所以這個類需要能夠處理多個角色/變量/類 - 爲此,它必須被模板化[雖然這不完全相關]。
它的主要作用之一是將單個字符[從文件加載]存儲在單獨的節點中。鑑於尺寸可以變化,它必須是動態的。然而,作爲其中一個角色涉及從文件加載,它不能是一個數組[因爲讀取文件以計算出參數數量,字符等會導致硬盤驅動器/訪問瓶頸]。所以...
...單鏈表可以讓每個通過角色[容易]添加一個角色[獲得角色[並且同時統計 - 解決兩個問題]。問題是單鏈表很難[安全地]刪除,導航是一種方式。這是一個問題,因爲這妨礙了搜索功能,特別是,預期的多用途角色......
......所以結論是它必須是一個雙向鏈表。我不喜歡STL或標準列表,因爲我不知道它們的效率或安全性,或者確實與班級必須支持的其他功能的兼容性。所以它必須是一個定製的D-L-List ...
...但是我之前(前一段時間)實現了Head/Node方法 - 它工作。然而,它作爲頭和節點共享功能調試變得複雜和困難。這一次我只想要一個簡單的,單一的[可讀!它將被共享!]類,它以某種方式迴避了C++幾乎'優美'的本質。這意味着沒有Head/Iter/End複製開銷(以及所需的所有功能/變量/調試)並且沒有Head系統的複製...
...靜態是我得到的最接近的。也許有某種方法可以讓你有一個存儲這三個變量的類A和一個存儲這個列表的類B,並且它們都知道對方並且能夠通過某種方法/函數進行通信(沒有指針存儲!)......
...類似的規定。我非常確定有一些層次結構,次級或無用的伎倆可能導致這種情況發生,我需要一個比我更瞭解精細藝術的人,改進我的想法等等。
這不聽起來像是一個雙鏈表 - 應該有指向prev和next元素的指針,看起來像你的缺少'prev'部分。 – hummingBird 2010-11-06 09:50:34
你能描述一下這個原因嗎?也許列表並不是最好的解決方案。 – peterchen 2010-11-06 10:09:34
說明你真正的問題是什麼,而不是你想要的解決方案,但是你需要克服什麼問題。爲什麼你需要普遍可用的東西,但對於不同的變量? (你的意思是說,每個變量 - 不是它的成員 - 是普遍可訪問的嗎?)你如何認爲這會改善內存開銷?你如何看待這將改善處理時間? – 2010-11-06 11:12:52