我不知道为什么我的程序停止迭代4298迭代。当程序包含100个物品或类似物品时,该程序会执行它应该做的事情。为什么程序在C++执行完成之前停止迭代?
this->getList()
包含5000个项目。我的压力测试我的程序
这是导致问题的功能:
map<Coordinate, map<Coordinate, double>> NearestPoints::allDistances() {
map<Coordinate, map<Coordinate, double>> result = map<Coordinate, map<Coordinate, double>>();
int count = 0;
list<Coordinate> list1 = this->getList();
for (list<Coordinate>::iterator iterator1 = list1.begin(), end = list1.end(); iterator1 != end; iterator1++)
{
cout << ++count << endl;
Coordinate coordinate1 = *iterator1;
result.insert(make_pair(coordinate1,map<Coordinate,double>()));
list<Coordinate> list2 = this->getList();
list2.remove(coordinate1);
for (list<Coordinate>::iterator iterator2 = list2.begin(), internalEnd = list2.end(); iterator2 != internalEnd; iterator2++)
{
Coordinate coordinate2 = *iterator2;
/*
if (result.find(coordinate2) != result.end())
{
result.at(coordinate1).insert(make_pair(coordinate2, result.at(coordinate2).at(coordinate1)));
}
*/
//else
//{
result.at(coordinate1).insert(make_pair(coordinate2, this->distanceBetweenTwoPoints(coordinate1.getX(),coordinate1.getY(),coordinate2.getX(),coordinate2.getY())));
//}
}
}
return result;
}
什么停止迭代的意思??坠毁,挂? – basav
不,它没有坠毁。在4298迭代之后,即使主还没有完全执行,它也会打印“按任意键继续”。当列表包含100个坐标时,我工作正常。 –
'Coordinate'的大小是多少? –