lukasS
Erfahrenes Mitglied
Hallo,
ich bräuchte einen Array, der ähnlich dem CStringArray ist, wo ich keinen Index bei deklarieren angeben muss. Mit Vektoren ist sowas möglich (glaube ich). Im Internet habe ich eine Klasse gefunden, mit der es wunderbar funktioniert (siehe unten), aber leider nur mit Zahlen. Ich bräuchte sowas mit strings. Da ich noch ein C++ anfänger bin, weiß ich nicht wie ich das realisieren soll.
Wer kann mir Helfen? Bin für jede Hilfe dankbar!
Lukas
ich bräuchte einen Array, der ähnlich dem CStringArray ist, wo ich keinen Index bei deklarieren angeben muss. Mit Vektoren ist sowas möglich (glaube ich). Im Internet habe ich eine Klasse gefunden, mit der es wunderbar funktioniert (siehe unten), aber leider nur mit Zahlen. Ich bräuchte sowas mit strings. Da ich noch ein C++ anfänger bin, weiß ich nicht wie ich das realisieren soll.
Wer kann mir Helfen? Bin für jede Hilfe dankbar!
Code:
class Vector
{
private:
double *m_data;
int m_size;
public:
Vector(int);
~Vector();
double& operator[](int);
int getSize();
void grow(int);
};
Vector::Vector(int size)
{
m_size = size;
m_data = new double[m_size];
}
Vector::~Vector()
{
delete[] m_data;
}
double& Vector::operator[](int index)
{
assert(index >= 0);
assert(index < m_size);
return m_data[index];
}
int Vector::getSize()
{
return m_size;
}
void Vector::grow(int newSize)
{
// Diese Methode legt ein neues Array der neuen Größe an,
double *newData = new double[newSize];
// kopiert dann alle Werte des alten Arrays in das neue Array,
for(int i = 0; i < m_size; ++i)
newData[i] = m_data[i];
// löscht das alte Array
delete[] m_data;
// und setzt dann die Attribute m_size und m_data auf die neuen Werte.
m_size = newSize;
m_data = newData;
}
Lukas