[問題] map查找如果沒有值的話!!

看板C_and_CPP (C/C++)作者 (密碼呢)時間16年前 (2009/03/19 11:31), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串1/1
程式新手 見笑了 以下是舉個例子 因為需要查找資料 可是會有大機率是找不到key值的 目前是會有50000多筆可能的英文名字 要到6000多筆的英文名字裡面找相符合的 不過用find函式不知道怎樣知道如果沒有找到的話會傳回什麼值 我用cout<<maptest.find("sogana")->first 這樣會產生錯誤然後就中斷了 到底是哪裡錯了呢?? map <string,int> maptest; maptest.insert(pair<string,int>("sogana00",27)); maptest.insert(pair<string,int>("sogana01",25)); maptest.insert(pair<string,int>("sogana02",24)); maptest.insert(pair<string,int>("sogana03",23)); maptest.find("sogana00"); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.120.13.200

03/19 11:37, , 1F
我自己翻到了...會傳回end
03/19 11:37, 1F

03/19 14:10, , 2F
如果允許預設值的話可以用[]運算子,找不到default就是0
03/19 14:10, 2F

03/19 15:36, , 3F
反對 下標運算子會造成無法預期的結果
03/19 15:36, 3F

03/19 16:19, , 4F
補充一下,前提是value的型別不是user-defined
03/19 16:19, 4F
文章代碼(AID): #19mRoIze (C_and_CPP)
文章代碼(AID): #19mRoIze (C_and_CPP)