作者hn12404988 (Willy)
看板C_and_CPP
标题Re: [问题] 三维map的find要怎麽做?
时间Sat Jan 7 15:13:09 2017
: 我想用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;
using namespace std;
typedef map<int,map<int,map<int,vector<int> > > > mymap;
bool create(mymap &m,int x,int y,int z){
if(m[x][y].find(z)==m[x][y].end()){
vector<int> input;
m[x][y][z] = input;
return true;
}
else{
return false;
}
}
int main(int argc,char* argv[]){
mymap m;
if(create(m,1,1,1)==true){
cout << "Vector doesn't exist, and create one" << endl;
}
else{
cout << "Vector already exist." << endl;
}
if(create(m,1,1,1)==true){
cout << "Vector doesn't exist, and create one" << endl;
}
else{
cout << "Vector already exist." << endl;
}
return 0;
}
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.133.16.181
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1483773191.A.73A.html
1F:推 Deltak: 谢谢喔!原来find是这样用,我看范例都是用iterator,自己 01/07 16:42
2F:→ Deltak: 用都怪怪的 01/07 16:42
3F:→ LPH66: 你看到的是 general 的 find, map 因为元素有序所以有更好 01/07 16:50
4F:→ LPH66: 的 find 法, 因此自己会提供一个 find 给用 01/07 16:50
5F:推 Deltak: 了解了,谢谢喔 01/07 16:55
6F:→ pziyout: 为何不将 x,y,z 并起来变成一个字串 x:y:z 当成 key ? 01/09 17:06