C++向数组添加元素并调整数组大小

C++ adding an element to the array and resizing the array

本文关键字:数组 调整 元素 添加 C++      更新时间:2023-10-16

我正在尝试将数字一个接一个地添加到我的数组中,到目前为止我有这个:

int main(){
DynamicArray<int> intArray(5);
int num = 0;
int point;
intArray.addElement(20);
intArray.addElement(10);
intArray.addElement(30);
intArray.addElement(60);
intArray.addElement(21);

for(int x = 0; x < 5; ++x){
intArray[x] = rand() % 100;
std::cout << intArray[x] << " ";
}

std::cout << endl;
std::cout << "n" "Enter the number :" << endl;
cin >> num;

std::cout << "n" "What point ?" << endl;
cin >> point;
for(int x = 0; x > point; --x){
intArray[x] = intArray[x-1];
}
intArray[point] = num;
for(int x = 0; x < 5; x++){
std::cout << intArray[x] << " ";
}
std::cout << endl;
return 0;

}

但是当我运行它时,我得到这个:

7 49 73 58 30 
Enter the number :
2
What point ?
0
2 49 73 58 30

问题是如何在不摆脱 7 并调整数组大小的情况下将元素 2 添加到位置 0?

谢谢你的任何帮助将不胜感激。

要调整 DynamicArray 的大小,您需要将长度属性设置为所需的值,在您的情况下lenght + 1这样做,您可以使用以下内容:

intArray.Length = intArray.Length + 1;

然后,您可以根据需要移动和添加元素。 请注意您在 for cicle 中使用的索引,它可能包含一些错误。

注意:对于上面的代码,也许最好使用 std::vector。