Я пытаюсь сделать функцию сортировки для std::vector
, но у меня проблема с отрицательным values
.Я не хочу использовать функцию vector::sort
.Очередь - это вектор.
Мой ввод:
1, -2, -241, 332, 2667, -2667, 266217, 2667, 13, -22, -41, 2332
Вывод:
266217, 2667, 2667, 2332, 332, 13, 1, -2. -241, -2667, -22, -41
В основном все работает,и тогда это падает из-за неясных причин для меня.
Функция:
void PriorityQueue::Push(double value)
{
std::vector<double>::iterator pr;
if (Queue.empty())
{
Queue.push_back(value);
}
else if (!Queue.empty())
{
for (pr = Queue.begin(); pr != Queue.end(); pr++)
{
if (value > *pr || value == *pr)
{
Queue.insert(pr, value);
break;
}
else if (value < 0)
{
if (value > *pr || value == *pr)
{
Queue.insert(pr, value);
break;
}
else if (value < *pr)
{
Queue.push_back(value);
break;
}
}
}
}
}