看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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
wawi2: 不是很確定 但或許你可以用 map<vector<int>> mymap; 01/07 12:06
不好意思,看不太懂你的意思... 目前有用了一個替代方案是 vector<int> v[100][100][100]; 不過還是很好奇map能不能做到上述的那樣 ※ 編輯: Deltak (118.168.106.200), 01/07/2017 13:04:03
Caesar08: 呼叫3次find。你用[][][]他就會自己產生vector了 01/07 13:39
Caesar08: 另外,你可以考慮用unordered_map取代map 01/07 13:39
ilikekotomi: 如果只是要確認存在 可以用set<tuple<int,int,int>> 01/07 13:41
ilikekotomi: 看情況可以用unordered的版本會更好 01/07 13:47
好,我會去學一下unordered怎麼用,謝謝上面兩位 ※ 編輯: Deltak (118.168.106.200), 01/07/2017 16:55:01