2012-02-03 69 views
0

什麼,我試圖做的是讓他們的名單與使在C++ **指針

Item *itm = new Item(); 
_lst.push_front(&itm); 

LST在頭

std::list<int> _lst; 

我努力學習爲所生產製造的列表我自己的C++,所以任何建議將是偉大的。

EDIT1) 不& ITM給在內存中的指針位置,這將是一個int?

EDIT2) ,我不應該是學習C++對我自己不與指針問題

+5

如果它是int'的'名單,你不會有太大的運氣把一個項目''**就可以了... – Borealid 2012-02-03 03:44:43

+3

你可以學習C++在你自己的,但沒有[一本好書( http://stackoverflow.com/q/388242/46642),這並不容易。 – 2012-02-03 03:52:57

+0

在回答您的編輯,** **無。指針不是「int」。 (在回答你的其他的編輯,你知道,如果你沒有學會對自己的C++ ...) – 2012-02-03 03:55:55

回答

2

我建議只需使用

std::list<Item**> _lst; 

你所需要的雙間接幫助的事實呢?你不能像這樣的清單做:

std::list<Item*> _lst; 

當然,你不得不推回itm代替&itm,如果你想這樣做。你確定你需要一個列表,而不是一個向量或一個deque?正如評論所建議的那樣,獲得一本好的C++書來幫助解決問題。

閱讀我的文章由R.費爾南德斯Martinho的評論之後,我不得不建議std::list<Item> _lst;是一個很好的替代者。正如我前面所說,這真的取決於你需要什麼。

我希望這會有所幫助。

+5

甚至更​​好:'標準::名單'。 – 2012-02-03 04:04:25

+1

+1 @ R.MartinhoFernandes是正確的 - 僅當你真的需要它們時才使用指針,即使如此,通常也有比原始指針更好的選擇(引用和智能指針)。 – kfmfe04 2012-02-03 04:26:01

+0

收聽評論者。我還有+1版! – batbrat 2012-02-03 04:27:40