[問題] 三維map的find要怎麼做?

看板C_and_CPP作者 (藍田五十弦)時間9年前 (2017/01/07 11:58), 9年前編輯推噓0(005)
留言5則, 3人參與, 最新討論串1/2 (看更多)
開發平台(Platform): (Ex: Win10, Linux, ...) win7 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) GCC 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) <map> 問題(Question): 我想用map把一個int清單(vector<int>) 存在一個三維空間中 希望用 mymap[x][y][z] 可以對應到一個 vector<int> 但是現在有個問題是,我想要確認某(x0,y0,z0)位置是不是已經建立清單了 如果不是的話要生一個vector給它 網路上有查了find的用法,但是找不到類似問題的解決方法 map生成如下,請問各位,find或有什麼方法能做到這件事? map<int, map<int, map<int, vector<int> > > > mymap; 謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.168.106.200 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1483761480.A.46B.html

01/07 12:06, , 1F
不是很確定 但或許你可以用 map<vector<int>> mymap;
01/07 12:06, 1F
不好意思,看不太懂你的意思... 目前有用了一個替代方案是 vector<int> v[100][100][100]; 不過還是很好奇map能不能做到上述的那樣 ※ 編輯: Deltak (118.168.106.200), 01/07/2017 13:04:03

01/07 13:39, , 2F
呼叫3次find。你用[][][]他就會自己產生vector了
01/07 13:39, 2F

01/07 13:39, , 3F
另外,你可以考慮用unordered_map取代map
01/07 13:39, 3F

01/07 13:41, , 4F
如果只是要確認存在 可以用set<tuple<int,int,int>>
01/07 13:41, 4F

01/07 13:47, , 5F
看情況可以用unordered的版本會更好
01/07 13:47, 5F
好,我會去學一下unordered怎麼用,謝謝上面兩位 ※ 編輯: Deltak (118.168.106.200), 01/07/2017 16:55:01
文章代碼(AID): #1OS6T8Hh (C_and_CPP)
文章代碼(AID): #1OS6T8Hh (C_and_CPP)