C++ 我试图增加和减少数组的大小
我试着做家庭作业,基本上就是这样。首先,我尝试将数组的大小增加一倍(从5到10),然后尝试将数组的大小减少一个元素 这就是我所做的C++ 我试图增加和减少数组的大小,c++,arrays,new-operator,C++,Arrays,New Operator,我试着做家庭作业,基本上就是这样。首先,我尝试将数组的大小增加一倍(从5到10),然后尝试将数组的大小减少一个元素 这就是我所做的 int size = 5; int theKingOfKeepingSizes = size; string *arr = new string[size]; size = size + 5; string *arr2 = new string[size]; for (int i = 0; i < theKingOfKeepingSizes; i++)
int size = 5;
int theKingOfKeepingSizes = size;
string *arr = new string[size];
size = size + 5;
string *arr2 = new string[size];
for (int i = 0; i < theKingOfKeepingSizes; i++)
{
arr2[i] = arr[i];
}
delete[] arr;
arr = arr2;
int newsize = size - 1;
string *arr3 = new string[newsize];
for (int i = 0; i < newsize; i++)
{
arr3[i] = arr2[i];
}
delete[] arr2;
arr2 = arr3;
int size=5;
保持大小的国王=大小;
字符串*arr=新字符串[大小];
尺寸=尺寸+5;
字符串*arr2=新字符串[大小];
对于(int i=0;i
在你告诉我向量可以使用之前,我知道。我只是按照指示去做。但是我做得对吗?如果我不是,我能改进什么,以及。如果我做对了,我怎么能测试它呢?也许有名字?我不知道怎么做
谢谢大家!
说明如下:
看起来不错!不过,如果你的家庭作业要求你将尺寸增加一倍,最好写下:“尺寸=尺寸*2” 行“arr=arr2”也没有任何作用,因为您已经删除了变量arr:)下面的解释:(我不能评论,因为我没有足够的声誉) 此行声明指向字符串对象的指针。
*
前面的*一个_pt
使其成为一个指针;如果它是一个正态变量,那么它就是a\u pt
。它还创建一个大小为5的数组,因为它在[]方括号内使用变量size
cout<<size<<endl;
此行在每个元素中用“Aa”填充数组,因此a_pt=[Aa,Aa,Aa,Aa,Aa]
cout<<a_pt[i]<<" "; //Proveing size of 5
这部分让我困惑,你可以写size\u 2=size*2代码>
cout<<endl<<size<<endl;
for (int g = 0; g < size_2; g++)
{
a_pt[g] = "Bb";
cout<<a_pt[g]<<" "; //Proving size of 10
}
coutI投票结束这个问题,因为这个代码属于@Barry:所以对于有已知问题的代码来说是很好的,他知道他的问题是什么——没有测试。我在这个问题上支持@BenVoigt。@Tariknaej关于“只是遵循说明”——如果我看不到你的说明,我不知道你是否做对了。代码中的某些内容不好;不过,如果它们不与说明相矛盾的话,它们可能还可以。为了让人们回答这一部分,请发布说明。@anatolyg我刚刚做了,谢谢:)通过“arr=arr2”我正在尝试(请注意,我是从瑞典语翻译过来的)将主指针移动到新数组。它是这样做的吗?不,不是:)我不确定你是否理解指针,指针是一个保存内存地址的变量,而不是一个普通变量,你必须获取内存地址,然后获取值
我不完全理解您所说的“将主指针移动到新数组”是什么意思,您不需要将任何内容移动到新数组,当您开始使用arr2
而不是arr
arr
时,程序将自动转到新数组,行arr=arr2
使指针arr
指向arr2
指向的同一内存块。指针是正常变量。只是他们所持有的数据代表一个地址(而不是一个字符串或数字)。你是最棒的,没有什么能让你失望!也谢谢你,我现在明白了:)
cout<<a_pt[i]<<" "; //Proveing size of 5
}
for (int o = 0; o <size_2; o++)
{ size+=1; } //Increasing size to 10.
size_2 = size;
cout<<endl<<size<<endl;
for (int g = 0; g < size_2; g++)
{
a_pt[g] = "Bb";
cout<<a_pt[g]<<" "; //Proving size of 10
}