[英]How to shift elements in an array to the right?
我是编程新手,现在正在学习 c++。 我有一个对象数组,我想在另外两个对象之间添加一个新的 object。 我制作了一个 function 将元素索引处的数组向右移动,但似乎是删除其他元素而不是仅插入新元素。
void Storage::ShiftProductsRight(int index)
{
if(index == max_size - 1)
{
cout<<"No more place in storage! "<<endl;
// array[max_size-1] = Product();
return;
}
Product temp;
for (int i = index + 1; i < max_size-1; ++i)
{
temp = array[max_size-1];
array[max_size-1] = array[i];
array[i] = temp;
}
}
如何将数组中的元素向右移动?
执行此操作的算法是:从最后一个元素开始,将其移动到新的 position,向后迭代并重复直到要插入新元素的索引
标准库中有该算法的实现。 它被称为std::move_backwards
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.