Multidimensionaler dynamischer Array

Alles rund um die Programmierung mit Qt
Antworten
paule22
Beiträge: 18
Registriert: 1. August 2010 21:25

Multidimensionaler dynamischer Array

Beitrag von paule22 »

Hallo,

ich schreibe gerade an einer script sprache.
darunter ist auch folgendes construct:

myArray = new Array(4,2,3)
myArray[1][2][3] = 42

nun bin ich am überlegen, wie man mit QT an die einzelnen Dimensionen ran kommt.
dazu ein kleiner code:

Code: Alles auswählen

QList<int> dim;
QListIterator<int> iter(dim);
while (iter.hasNext())
{
  cout << iter.next() << " | ";
}
der funktioniert auch soweit.
nur wie kann ich wie setvalue(1,2,3, 42);
bewerkstelligen?

also soll dynamisch sein, damit man N dimensionen programmieren kann.
ich habe folgenden code, komme aber nicht weiter:

Code: Alles auswählen

QList<TArrayType> es;

extern "C" void set_array_value(char *n, double val, int num, ...)
{
  es << TArrayType(QString(n),1,val,"Hello");

  bool found = false;
  int i,j,k;

  for (i = 0; i < es.count(); i++)
  {
    if (es.at(j).name == ArrayList.at(i).name)
    {
	va_list ptr;
	int s, m, d;
	QList<int> dim;

	va_start(ptr,num);
	for (m = num; m >= 1; m--)
	{
	  k = va_arg(ptr,int);
	  s = va_arg(ptr,int);
	  dim << k;
	}
	va_end(ptr);

	if (dim.count() < ArrayList.at(i).dimension.count())
	throw ArrayException;

	QListIterator<int> iter(dim);
	while (iter.hasNext())
	{
	  cout << iter.next() << " | ";
	}

        cout
	<< "Name: " << ArrayList.at(i).name.toStdString() << endl
	<< "Size: " << num            << endl
	<< "Type: " << es.at(j).type  << endl
	<< "Valu: " << es.at(j).value << endl
	<< "Text: " << es.at(j).text.toStdString()
	<< endl;

	found = true;
	break;
    }
  }
}
danke für hilfe
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Multidimensionaler dynamischer Array

Beitrag von Christian81 »

Ein Array ist ein Vector, keine List!
Also QVector<QVector<QVector<int> > >
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten