我在嘗試獲取內部子容器的迭代器時遇到了問題。獲取內部STL容器的迭代器?
基本上想象這種簡化代碼:
typedef map<string, map<string, map> > double_map;
double_map dm;
.. //some code here
for(double_map::iterator it = dm.begin(); it != dm.end(); it++){
//some code here
it->first // string
it->second // <---- this is the 2nd map, how do i get its iterator so I can wrap it
//in a for loop like above?
}
我需要能夠做到這一點,而不使用的typedef爲每一個內膽,有沒有辦法讓內部容器的迭代器?我有4個內部容器的結構,我需要遍歷它們。
對不起,這不是我的意思,我的意思是我需要將這些迭代器存儲在inner_type :: iterator中it2 = it-> second.begin() 然後循環使用這些迭代器 – 2009-09-09 13:59:01
這就是它!爲什麼我沒有想到mapped_type和value_type,是完美的,這是我需要的。謝謝! – 2009-09-09 14:42:23
但是,當有子容器3或4級深我猜你必須做double_map :: mapped_type :: mapped_type :: mapped_type嗯,幸運的是我有一個typedef中途通過 – 2009-09-09 14:46:01