繁体   English   中英

如何将数组中的元素向右移动?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM