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相关的内存管理出了问题?
[解决办法]