亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Go 數組中查找的模式

在 Go 數組中查找的模式

Go
HUWWW 2021-07-27 17:56:17
Go 有方便的語法來定義數組查找表:var myTable = [...]string{  'a': "aaaa",  'b': "bbbb",  'z': "zoro",}在某些情況下(鍵是已知的并且范圍不是太大),這是比地圖更有效的制作表格的方法。但是,很容易在 map 中進行查找并查找 key 是否不在其中。但是要在這個數組中按索引進行查找,我必須這樣做:if index < len(myTable) {  if val := myTable[index]; val != "" {    // here I know index exists in array and val is its value  }}是否有更簡單/更常見的模式或庫函數來做到這一點?
查看完整描述

2 回答

?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

在某些情況下(鍵是已知的并且范圍不是太大)這是制作表格的更有效的方法,而不是映射

是的。您想將您的密鑰轉換為數組中的偏移量。然后您可以在恒定時間內進行查找。

假設您知道您的所有密鑰都在 set 中A-Z。因此,您創建了一個包含 26 個條目的數組。當輸入鍵時,減去“A”的 ASCII 值以將索引放入表中。Boom,恒定時間查找,這將比地圖查找快得多。

請注意,您實際上并未將密鑰存儲在任何地方,它是隱式的。如果你想打印你的表格,你需要自己生成所有的鍵 ( A-Z)。


查看完整回答
反對 回復 2021-08-02
  • 2 回答
  • 0 關注
  • 294 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號