【发布时间】:2020-06-13 19:40:05
【问题描述】:
我是编程新手,现在正在学习 c++。 我有一个对象数组,我想在另外两个对象之间添加一个新对象。我创建了一个函数,将元素索引处的数组向右移动,但似乎删除了其他元素,而不是只插入新元素。
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;
}
}
【问题讨论】:
-
C++ 有
std::vector为您处理这个问题。 -
你在代码的什么地方插入了一个新元素?
-
我想你可能正在寻找std::rotate..?
-
比较
index和max_size - 1如何告诉你数组已满?即使您尝试在索引 0 处插入,数组也可能已满。 -
虽然我可以看到代码是错误的,但很难提供帮助,因为不清楚变量的含义。
max_size是什么?