Verschachtelte Vectorobjekte

fujitsufan

Erfahrenes Mitglied
Guten Tag,
kann ich Teile verschachtelter Vectorobjekte einer Methode als Parameter mitgeben.

Folgendes:
Ich habe eine Struktur definiert.
Code:
typedef struct t_Value
{
	int		iValRange[3];
	string  strBasicAtt;
	string  strBasicVal;
	string	strUnit;
	string	strProperty;
	vector <string>	strSerie;

} t_Value;

In der Klassendeklaration als
Code:
private:
vector < t_Value >	vBasicsAll;
t_Value		tvlok;	//globale Strkturvariable
};

Jetzt möchte ich nur einen Teil des Vectors "vBasicsAll" einer Methode als Parameter übergeben, und zwar das Vectorobjekt "strSerie", bestehend aus einem Array aus strings.

Das sieht zur Laufzeit so aus:
Code:
vBasicsAll[i].serie[k] = "Wie";
vBasicsAll[i].serie[k] = "geht";
vBasicsAll[i].serie[k] = "das";

Der Funktionsaufruf lautet:
Code:
VerivyAttValueInSerie( ? );

Die Methode lautet:
Code:
int TCANModul::VerivyAttValueInSerie( ? )

Der Prototyp lautet:
Code:
VerivyAttValueInSerie( ? )


Das Arbeiten mit Vectoren ist Neuland für mich.


mfG.
fujitsufan
 
In deinem Struct t_Value steht doch die Deklaration des Vectors:

vector <string> strSerie


Je nachdem, ob du den Vektor nur auslesen oder auch ändern können möchtest, eine der folgenden Signaturen verwenden:

// nur lesbar
int TCANModul::VerivyAttValueInSerie( const vector<string>& serien )

// modifizierbar
int TCANModul::VerivyAttValueInSerie( vector<string>& serien )


Der Aufruf ist in beiden Fällen gleich:

VerivyAttValueInSerie( tvlok.strSerie );


Als Tip:
-Verify schreibt man mit F
-using namespace in Header ist böses Karma (das versaut dir den globalen Namespace in allen Dateien, die den Header anziehen)
-Hungarian Notation sollte heutzutage nicht mehr notwendig sein, kann aber persönlicher Stil sein
 
Zurück