Hallo,
ich möchte ein Programm schreiben, durch das ein dynamisches Array genutzt werden kann. Es soll über den Konstruktor eine Größe übergeben werden und sobald diese Größe erreicht ist, wird ein neues Array generiert, in welchem die vorherigen Werte hineinkopiert werden.
Hierfür habe ich den []-Operator überladen.
Das Programm scheint auf den ersten Blick auch zu funktionieren. Nachdem ich dann aber versucht habe ein Array mit der Größe 100 zu implementieren und hier 20000 Elemente zu speichern, werden unterschiedliche Zahlen ausgegeben.
Bei ersten Durchlauf wurden über 7000 Zahlen ausgegeben. Nach erneuten Durchlauf über 1800. Allerdings nie die gewünschten 20000.
Woran könnte das liegen?
Vielen Dank im Voraus!
ich möchte ein Programm schreiben, durch das ein dynamisches Array genutzt werden kann. Es soll über den Konstruktor eine Größe übergeben werden und sobald diese Größe erreicht ist, wird ein neues Array generiert, in welchem die vorherigen Werte hineinkopiert werden.
Hierfür habe ich den []-Operator überladen.
Das Programm scheint auf den ersten Blick auch zu funktionieren. Nachdem ich dann aber versucht habe ein Array mit der Größe 100 zu implementieren und hier 20000 Elemente zu speichern, werden unterschiedliche Zahlen ausgegeben.
Bei ersten Durchlauf wurden über 7000 Zahlen ausgegeben. Nach erneuten Durchlauf über 1800. Allerdings nie die gewünschten 20000.
Woran könnte das liegen?
C:
#include <iostream>
using namespace std;
template<class T>
class Container{
public:
T *dynamischesArray;
private:
T *neuesArray;
int size;
public:
Container(int size){
this->size=size;
dynamischesArray=new T[size];
}
T operator[] (unsigned long index){
//Array vergrößern
if(index>size-1){
neuesArray=new T[size+(index-size)];
T i;
for(i=0; i<(size+(index-size)); i++){
neuesArray[i]=dynamischesArray[i];
}
delete[] dynamischesArray;
dynamischesArray=neuesArray;
delete[] neuesArray;
}
return dynamischesArray[index];
}
};
int main()
{
Container <int> dArray(100);
for(int i=1; i<20000; i++){
dArray.dynamischesArray[i]=i;
cout << dArray.dynamischesArray[i] << "\n";
}
return 0;
}
Vielen Dank im Voraus!