【发布时间】:2020-06-04 11:39:45
【问题描述】:
我正在尝试通过将填充了随机值的用户设置长度列表传递给将按升序对元素进行排序的函数来对数字列表进行排序。
我在使用数组之前已经解决了这个问题并且没有问题。出于某种原因,我的代码无法正常工作,如果你们能帮助我找出它无法正常工作的原因,我将不胜感激。它将对数字进行排序,但最后一个数字将未排序。
函数如下:
void sort(std::list<int>& numbers)
{
list<int>::iterator it;
list<int>::iterator it2;
for (it = numbers.begin(); it != numbers.end(); ++it)
{
for (it2 = ++numbers.begin(); it2 != numbers.end(); ++it2)
{
if (*it > *it2)
{
int temp = *it;
*it = *it2;
*it2 = temp;
}
}
}
}
【问题讨论】:
-
除非它是实现您自己的排序的任务的一部分,否则使用
std::sort(或者在std::list的情况下,std::list::sort)。 -
你试过调试这个吗?