我正在为我的介绍性C++类做一个插入排序,它似乎在工作,但我不断在重新排序列表中排序。插入排序问题
在主
Storage s;
for (int i = 0; i < 20000; ++i)
{
cout << "adding " << iss[i] << " to sorted list" << endl;
s.Add(iss[i]);
}
和Storage.cpp
void Storage::Add(int num)
{
it = mylist.begin();
if (mylist.empty())
{
Node tem(num);
mylist.push_front(tem);
}
else
{
while (it != mylist.end())
{
if (num < (*it).GetNumber())
{
Node temp(num);
mylist.insert(it, temp);
}
it++;
if (it == mylist.end())
{
Node te(num);
mylist.push_back(te);
}
}
}
it = mylist.begin();
while (it != mylist.end())
{
cout << (*it).GetNumber() << ',';
it++;
}
cout << endl << mylist.size() <<endl;
}
Node
只存储正被添加到列表中,以及所述时间,这是内部Node
计算的数量。
我不明白为什么我得到重复,在此先感谢帮助。
你试过调试吗?尝试浏览代码并观察发生了什么。 – crashmstr