Два варианта - либо написать свой чокнутый компаратор, который будет особым образом относится к нулю, а затем сделать std::sort.
Либо отсортировать как обычно, а потом перенести нули в начало.
Очень просто - qsort или std::sort имеют параметром вызов процедуры сравнения.
Вот в этой процедуре перед сравнение привести сравниваемые значения в беззнаковое (unsigned), и уже потом сравнивать. Тогда -1 станет 0xffff и будет > 0.