Ich möchte X am Ende meines Array hinzufügen, wenn das Array voll ist Ich verdopple die Größe, aber ich habe Probleme beim Einfügen in NewArray, nachdem ich es in newArray bekomme ich Zeiger verwenden, um zu wechseln dynamicArray zu newArray.Hinzufügen von etwas zu einem dynamischen Array
#include <iostream>
using namespace std;
class IntegerDynamicArray {
public:
IntegerDynamicArray();
~IntegerDynamicArray();
int add(int x);
private:
int * dynamicArray;
int currentSize=maxSize;
int maxSize=4;
};``
IntegerDynamicArray::IntegerDynamicArray()
{
dynamicArray = new int [maxSize];
}
IntegerDynamicArray::~IntegerDynamicArray()
{
delete [] dynamicArray;
}
int IntegerDynamicArray::add(int x)
{
cout<<x<<endl;
if(dynamicArray[currentSize-1]!=0)
{
int * newArray;
newArray= new int[currentSize*2];
for(int i =0;i<currentSize;i++)
{
newArray[i]=dynamicArray[i];
newArray[currentSize]=x;
}
currentSize=currentSize*2;
dynamicArray = newArray;
}
else
{
int * newArray;
newArray= new int[currentSize];
for(int i =0;i<currentSize;i++)
{
newArray[i]=dynamicArray[i];
newArray[currentSize-1]=x;
}
dynamicArray = newArray;
}
return *dynamicArray;
}
int main() {
IntegerDynamicArray intDynArray;
while (1) {
char input;
cout << "Enter A for add or anything else to quit: ";
cin >> input;
if (input == 'A') {
cout << "Enter number to add: ";
int x;
cin >> x;
cout << intDynArray.add(x) << endl;
} else {
break;
}
}
}
Verwendung Dies wäre viel einfacher * mit 'std :: vector'. Der 'std :: vector' verwaltet die Speicherzuweisung für Sie, einschließlich der erforderlichen Erweiterung. –
Dies ist für eine Klasse, also muss ich es so machen. –
Ich benötige ein dynamisches Array –