Предположим есть массив - array[1000]. Нужно удалить элемент 400 и при этом сдвинуть массив с 401 на 400, 402 на 401 и т.д. Как это сделать одной командой без циклов?
Например, старый добрый std::move:
std::move(array + 401, array + 1000, array + 400);
array + 401, array + 1000 — это начало и конец (past-the-end) перемещаемых элементов, array + 400 — адрес, начиная с которого они теперь будут размещаться. std::move позволяет сдвигать влево перекрывающиеся диапазоны; для сдвига вправо существует std::move_backwards.
Не думаю, что это будет нуждаться комментариев...
*(std::remove(array, array + 1000, array[400])) = 0;
Сборка персонального компьютера от Artline: умный выбор для современных пользователей