模板在內存分配和管理方面比基本數據類型更好用嗎?內存效率:模板vs基本數據類型
回答
只是在短:
模板 - 一種以一種通用的方式編寫一次代碼,並在編譯時間編譯器會根據模板生成代碼,如果你使用的templatic代碼。
例如:
#include <iostream>
template<typename T>
T MultiplyByFive(T _val)
{
return _val * 5;
}
int main()
{
std::cout << MultiplyByFive(5) << " " << MultiplyByFive(5.5) << std::endl;
return 0;
}
在該示例中,編譯器將生成兩個MultiplyByFive功能。一個用於整數,另一個用於雙精度。因此,輸出將是:
25 27.5
這是因爲這些功能已被調用。現在我們的代碼(由編譯器生成)兩大功能
int MultiplyByFive(int _val)
{
return _val * 5;
}
double MultiplyByFive(double _val)
{
return _val * 5;
}
我們沒有直接對其進行編碼,但根據我們模板編譯器一樣。
內存分配與模板無關。動態內存分配在運行時間(新操作員在C++中)中確定。靜態和局部變量是在編譯時確定的,但它與生成代碼無關。
如果我不明白這個問題,歡迎您進一步澄清。
哇!我很好奇,如果我們將模板/泛型應用於我們的功能而不是任何特定的數據類型。在內存分配和管理方面推薦哪一種。 –
我不確定我的理解。 分配與數據有關。模板是關於代碼,功能等的。 您可以使用模板來處理數據,但通常只是爲了表明您可以。 你在想什麼?舉一個例子 –
你確實清除了我的懷疑。 :D感謝哥們。我希望我可以對你的回覆進行投票。 –
- 1. GTK數據類型vs基本數據類型
- 2. 爲基本數據類型和特徵數據類型編寫模板函數
- 3. 爲什麼浮點類型模板函數的模板參數類型無效?
- 4. 從Django基本模板訪問模型數據
- 5. React.cloneElement內存效率
- 6. 基本模板類數據成員在派生模板類中不可見?
- 7. 如何確定的模板類型是基本型或類
- 8. WordPress數據存儲效率
- 9. 關於模板效率
- 10. 「基本數據類型」和「內置數據類型」的含義是否相同?
- 11. Drupal:內容類型模板
- 12. GCC vs VS匿名類型作爲模板參數
- 13. 內部類型作爲模板參數
- 14. 從JSON vs數據庫創建內容 - 效率
- 15. 泛型vs基類
- 16. 根據模板參數包裝類型容器的模板類
- 17. 基本刀片模板無效
- 18. C++條件模板基於數據類型編譯
- 19. 檢測模板類型本身是否是模板類型
- 20. 在模板類啓用方法基於模板類型
- 21. 是派生對象的模板基類型模板的子類
- 22. C模板仿函子。類模板vs函數模板
- 23. VS 2013不擅長與依賴於模板參數中通用的基準和返回類型函數模板
- 24. C++模板:如何動態類和基本類型
- 25. 模板標識符vs模板函數參數類型中的decltype
- 26. 數據類型調用模板方法
- 27. 編碼效率VS執行效率
- 28. 對象的內存效率
- 29. 效率與內存權衡
- 30. SignalR CPU和內存效率
這是一個C++的問題嗎? – doctorlove
如果它可以與C++或swift相關,那將會很棒。 @doctorlove –
模板不分配內存,只有當你實例化它,但它不清楚這是如何不同於「基本類型」 – user463035818