Is there any better way (either faster or with fewer symbols of code) than erasing the element and re-adding it to the back?
template
void mov
You can do this with std::rotate from the standard library. Since this doesn't change the vector size it also won't trigger a reallocation. Your function would look something like this:
template
void moveItemToBack(std::vector& v, size_t itemIndex)
{
auto it = v.begin() + itemIndex;
std::rotate(it, it + 1, v.end());
}