我对question的解决方案有疑问。答案建议使用std::rotate
将向量元素移动到向量的后面。
但我相信std::iter_swap
将是更合适的解决方案。由于std :: iter_swap适用于某个元素,而std::rotate
适用于该范围。
template <typename T>
void moveItemToBack(std::vector<T>& v, size_t itemIndex)
{
std::iter_swap(std::next(vec.begin(), itemIndex), v.end());
}