有沒有辦法在你的代碼中將私有變量添加到STL類中?例如,使得「std :: list」的任何實例都會附加一個附加變量。或者你只需要從頭開始創建自己的列表?向C++添加私有變量stl class
1
A
回答
3
在少數情況下,是的。例如,std :: istream和std :: ostream有一個特殊的很少使用的方法,稱爲xalloc()
,它允許您將一個或多個long
或void*
成員添加到這些類的所有實例。
但這並不典型。對於像std :: list這樣的容器類,沒有像這樣的成員掛鉤來添加「插槽」來包含自定義數據。
但是,容器類有一個可選的分配器模板參數。每個容器都有一個分配器,默認情況下它是無狀態的,並使用new
和delete
來分配元素。在C++ 11和更高版本中,這些分配器可以是「有狀態的」,這意味着您可以使用new
和delete
來創建自己的分配器,但也可以存儲任意額外的數據。一旦你用你需要的狀態編寫你的分配器,你可以檢索它,例如:從列表中使用get_allocator()
。
+0
使用分配器是一個聰明的技巧。謝謝。 – YSC
相關問題
- 1. POO和STL向量(將對象添加到變量中)
- 2. C#問題私有變量
- 3. C++私有變量混淆
- 4. OpenMP和C++:私有變量
- 5. C#私有變量&java私有變量getter&setter - 區別?
- 6. 現有數據的C++ STL向量
- 7. C++ STL向量半常數
- 8. C++ STL排序向量
- 9. 尋找找到一個STL向量內的C + + STL向量
- 10. Unity3D/C# - 向gameobject添加變量
- 11. 向ArrayList變量添加一個Class的一系列實例
- 12. 將JQuery變量添加到$('。class')。html(「HTML」);
- 13. vector <template>,C++,class,添加到向量
- 14. 具有私人複製構造函數的類的C + + stl向量?
- 15. 私有變量
- 16. C++私有變量範圍的規則
- 17. 如何讓C++中的私有變量
- 18. 裹STL向量和改變行爲
- 19. (C++)從私有基類訪問私有成員變量
- 20. STL向量push_back()
- 21. 在C#中通過繼承向類中添加私有方法
- 22. C++訪問私有向量值
- 23. C++私有靜態成員變量
- 24. 在C++中聲明私有變量
- 25. NewBie:C++私有變量
- 26. 私有成員變量範圍 - C++
- 27. C#按鈕點擊和私有變量
- 28. 訪問類C++的私有變量
- 29. C++由私有變量排序陣列
- 30. STL向量分配
爲什麼不從'std :: list'派生類?從頭開始你自己通常是一個超級壞主意。 – tadman
@tadman不要忘記'私人'。 – LogicStuff
聽起來像一個[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) - 你真的*試圖達到什麼? –