我正在做一些作业,但在这里被卡住了。我正在尝试编写一个 list_add() 函数。它的第一个功能是向数组添加值。它的第二个功能是增加数组的大小。所以它的工作原理很像矢量。我不知道我是否做对了。我尝试的是创建一个比旧数组更大的新动态分配数组,然后将所有值复制到新数组中。
这是正确的方法吗?
这里是主体
int main()
{
const int N = 7;
//declaring dynamic array allocation
int* list = new int[N];
int used = 0, a_val;
for(int i=0;i<11;i++)
{
list_add(list, used, N, i);
}
cout << endl << "Storlek: " << N << endl << endl;
cout << "Printar listan " << endl;
for(int i=0;i<used;i++)
{
cout << list[i] << ". ";
}
}
这是功能
bool list_add(int *list, int& space_used, int max_size, int value)
{
if(max_size-space_used > 0)
{
*(list+(max_size-space_used-1)) = value;
space_used++;
return true;
}
else
{
cout << "Increasing size of array!" << endl;
int new_max_size = space_used+1;
delete [] list;
int *list_new = new int[new_max_size];
for(int i=0; i<new_max_size; i++)
{
list_new[i] = i;
cout << list_new[i] << ". ";
}
cout << endl;
space_used++;
list = list_new;
return false;
}
}