有沒有辦法在你的代碼中將私有變量添加到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. C++私有變量混淆
- 2. OpenMP和C++:私有變量
- 3. 具有私人複製構造函數的類的C + + stl向量?
- 4. C++私有變量範圍的規則
- 5. 在C++中聲明私有變量
- 6. C#按鈕點擊和私有變量
- 7. 私有成員變量範圍 - C++
- 8. 訪問類C++的私有變量
- 9. 在私有變量中使用私有變量
- 10. STL向量分配
- 11. 嘗試向現有的表單POST變量添加變量值
- 12. Angular2私有變量()
- 13. JScript.NET私有變量
- 14. 私有變量 - Python
- 15. Objective-C私有實例變量定義
- 16. C++,stl函數向量指針映射
- 17. C++將外部變量導入私有類變量
- 18. 添加私有成員變量如何破壞C++ ABI兼容性?
- 19. 向C++向量添加新字段
- 20. push_back不向向量C++添加數字
- 21. Addin爲私有變量添加XML註釋
- 22. CUDA和STL向量
- 23. STL向量釋放
- 24. C++ - 操縱STL向量中的對象?
- 25. C++結構比對和STL向量
- 26. STL向量,迭代器和插入(C++)
- 27. 一個好的C等效STL向量?
- 28. 類和私有變量
- 29. 傳遞一個私有變量的公共靜態變量C#
- 30. Class實例變量沒有
爲什麼不從'std :: list'派生類?從頭開始你自己通常是一個超級壞主意。 – tadman
@tadman不要忘記'私人'。 – LogicStuff
聽起來像一個[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) - 你真的*試圖達到什麼? –