首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

multimap递归调用的有关问题

2012-06-07 
multimap递归调用的问题主程序如下:multimapint,intmymapsetint pathsetvoid main(){for ...{mymap.

multimap递归调用的问题
主程序如下:
multimap<int,int>mymap;
set<int> pathset;
void main(){
for ...
 {
  mymap.insert(make_pair(col1,col2); 
  ....................
 }
compute(number);
}
需递归调用的子程序为:
void compute(int start) 
{
 pathset.insert(start);
 multimap<int,int>::iterator beg=mymap.lower_bound(start),end=mymap.upper_bound(start);
 while (beg != end) {
  if (pathset.count(beg->second)==0) 
  {
  pathset.insert(beg->second);
  tempset[count]=(beg->second);
  count++;
  }
  ++beg;
  }
 for (int k=0;k<count;k++)
  {
  compute(tempset[k]) ;//以新加入集合中的元素为参数递归调用自己
  }
}
现在的问题是,当mypap中的元素少时,比如说小于1000对,程序结果正确,当元素较多时,结果就不正确了,是不是递归调用时,递归的层次过多,与multimap的iterator相关的内存管理出了问题?

[解决办法]

探讨
回楼上,是这样的,但想用multimap和数组实现。

热点排行