實現一個名爲MyStack的模板類,該類使用STL類向量創建堆棧。 MyStack類將有兩個函數 - push()和pop()。由於MyStack是一個模板類,它必須以可用於創建任何類型數據(內置和自定義類型)的堆棧的方式編寫。當堆棧的元素被彈出時,它應該從矢量中刪除,以便彈出的數據不再使用內存。 在main()中,創建多個不同數據類型的這種堆棧,推送一些示例數據,並在數據從相應堆棧彈出時顯示數據。template class&vector
回答
不會直接給你答案。但是你想要做的是創建一個擁有TYPE指針的類。當指針前往的數組被填充時,將信息複製到一個新的更大的數組上,然後刪除舊的數組。跟蹤容量和當前的大小。
如果你自己無法編程,那麼你真的需要回頭去了解更多關於該語言的知識。
這將重新實現'std :: vector'。他特別說他正在建立'std :: vector'。 – Potatoswatter 2010-08-15 01:02:05
@Patatoswatter - 錯過了「耶嗤!」 - 所以你的解決方案更好。 – 2010-08-15 01:31:48
獲得std::vector
收縮的唯一方法是使用較小的向量來獲得swap
。因此,釋放每個對象的內存彈出需要複製(幾乎)整個向量爲每個pop
,使其成爲O(n)
操作。因此,我建議你不要這樣做,或者如果這是作業,要麼清楚地注意爲什麼執行如此糟糕,或者注意vector::pop_back
事實上並不釋放任何東西。
順便說一句,在std::stack
使用<stack>
到std::vector
處理分配實現O(1)
push()
和pop()
。
- 1. template template as template class type
- 2. vector <template>,C++,class,添加到向量
- 3. 錯誤:'template <class T> class Dynamic_Array'used without template parameters
- 4. template class = default class does not do anything?
- 5. 「using」for「<template <class> class T>」
- 6. C++ template class overload []運算符
- 7. operator <<()for template class
- 8. Renjin/Java - Vector class to Java array class
- 9. django class page view not rendering template code
- 10. C++語法 - template <class ...選項>
- 11. vector <class*>編譯器錯誤2143,4430,2238
- 12. 對於給定的</p> <pre><code>template <typename...> class P; template <typename...> class Q; template <typename...> class R; template <typename...> class S; </code></pre> <p>包
- 13. 從mpl :: vector生成fusion :: vector
- 14. 如何根據URL找出正在使用哪個Template(class)?
- 15. operator << in template class;與命名空間;
- 16. 如何用Vector創建一個對象<Class>?
- 17. 使用std :: vector和class對象時出錯
- 18. 任何人都可以用vector和class來幫助我嗎?
- 19. C++「vector of vector」
- 20. AngularJS ng-template樹形結構ng-template內
- 21. ActionView :: Template :: Error:ActionView :: Template :: Error:undefined方法`[]'爲零:NilClass
- 22. JQuery Pure Template
- 23. elseif in wordpress template
- 24. Template #each&rendering
- 25. 訪問模板類A中的X和Y,如模板<template <int X,int Y> class> class A;
- 26. MFC IMPLEMENT_DYNCREATE with template
- 27. C++ template預期的主要表達式
- 28. java.lang.NoClassDefFoundError:freemarker/template/TemplateModelException
- 29. ForeignKey和Django Template
- 30. ActionView :: Template :: Error(v1_retired):
到目前爲止您嘗試過哪些方法,特別是在某處? StackOverflow不是一項家庭作業完成服務。 – AshleysBrain 2010-08-15 00:02:39