作者Deltak (蓝田五十弦)
看板C_and_CPP
标题[问题] 三维map的find要怎麽做?
时间Sat Jan 7 11:57:57 2017
开发平台(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://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1483761480.A.46B.html
1F:→ 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
2F:→ Caesar08: 呼叫3次find。你用[][][]他就会自己产生vector了 01/07 13:39
3F:→ Caesar08: 另外,你可以考虑用unordered_map取代map 01/07 13:39
4F:→ ilikekotomi: 如果只是要确认存在 可以用set<tuple<int,int,int>> 01/07 13:41
5F:→ ilikekotomi: 看情况可以用unordered的版本会更好 01/07 13:47
好,我会去学一下unordered怎麽用,谢谢上面两位
※ 编辑: Deltak (118.168.106.200), 01/07/2017 16:55:01