读书人

对于map容器的访问解决思路

发布时间: 2012-02-14 19:19:19 作者: rapoo

对于map容器的访问
求助,两map容器 map1和map2长度相等,有迭代器b和e都指向map2,怎么访问与b和e之间所有元素位置相对应的map1中的元素?
要求不能改变两个容器中元素的值。

[解决办法]

C/C++ code
for(it1=map1.begin(),it2=map2.begin();it2<=e;it1++,it2++){    if(it2>=b)        cout<<it1->second<<endl;}
[解决办法]
探讨
map的迭代器并不支持随机访问,也就是不能用iter += 3之类的语句。要想访问b到e范围的内容复杂度已经是n了,一楼的解法不过是遍历两次,但复杂度毕竟还是n。由于不能随机访问,我想1楼的方法应该是不能再有很大优化了。

读书人网 >C++

热点推荐