最近,在 R2022b 版本中,他們宣布引入字典。
我的印象是由containers.Map提供的字典已經可用。字典只是映射到containers.Map的不同名稱嗎?還是有其他區別?我無法在網上找到任何比較它們的東西。
uj5u.com熱心網友回復:
據我所知,在閱讀了這篇博文及其下的評論以及檔案之后(我還沒有機會嘗試它們,如果我錯了,請隨時糾正我):
dictionary是一個實際的原始型別,double如cell或struct。containers.Map是一個“自定義類”,即使現在代碼是內置的,功能也永遠無法像原始型別那樣集成。因此,dictionary明顯更快。dictionary使用正常值語意。如果你制作一個副本,你有兩個獨立的字典(注意 MATLAB 的惰性復制機制)。containers.Map是一個句柄類,意味著所有副本都指向相同的資料,修改一個副本會修改所有副本。containers.Map可以使用char陣列(舊的字串格式)或數字作為鍵(用作鍵時string隱式轉換char為)。dictionary可以使用任何型別,只要它多載keyhash. 這意味著您可以使用自己的自定義類物件作為鍵。dictionary是矢量化的,您可以一次查找多個值。使用 acontainers.Map您可以使用該函式查找多個值values,而不是正常的查找語法。dictionary有實際的 O(1) 查找。如果我沒記錯的話,*containers.Map不是。
* 不,它也是 O(1),至少在 R2022b 中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/526519.html
標籤:matlab字典
上一篇:查找并跟蹤符號鏈接但不洗掉它們
