map vergleichen

fujitsufan

Erfahrenes Mitglied
Hallo,

ich habe 2 maps mit verschachtelten Inhalten.
Kann ich diese 2 maps (mpVerstMap_1, mpVerstMap_2) mit einer kurzen Syntax miteinander vergleichen.
Ich will nur wissen ob die Inhalter der 2 maps identisch sind oder nicht.

Oder ist es erforderlich alle Elemente mittels for- oder while-Schleife miteinander zu vergleichen.
Diese wäre unflexibel, zumal sich die Datenstrukturen in Zufunft verändern werden.



// Datenstrukturen
Code:
typedef struct tLEISTEPARAM
{
	int iKennung;
	char cBohrungZeich[8];
	double dLaenge, dBreite, dHoehe;
	double dOffsetX, dOffsetY;
	double dBohrungD, dBohrungX;
	double dMatStaerke;
	double dBiegeRadius;
	vector <double> vBohrungY;
	

} stLEISTEPARAM;

typedef struct tLEISTE
{
	int iTeil;
	int iPosition;
	int iSubPosition;
	bool BAnschlagseite;
	double dPosX, dPosY;
	tLEISTEPARAM sLeisteParam;

} tLEISTE;

//Typdefinition
Code:
typedef  map <int, tLEISTE, less <int>>  tmpVerstLeiste;

//Variablendeklarationen
Code:
tmpVerstLeiste mpVerstMap_1;
tmpVerstLeiste mpVerstMap_2;

Gibt es für maps auch eine Art memcmp(,,) Methode?

MfG.
fujitsufan
 
Hi.

Eine Map wird üblicherweise mittels Red-Black-Tree implementiert, ein memcmp ist somit nicht möglich (zumal deine Datenstrukturen weitere nicht-POD Typen enthalten).

Dir wird nichts anderes übrig bleiben, als die beiden Maps mit Schleifen manuell zu traversieren.

Aber unflexibel ist das eigentlich nicht, du mußt lediglich Vergleichsoperatoren bzw. Komparatoren für deine Datenstrukturen definieren (was du ja sowieso tun mußt um überhaupt Vergleichen zu können).
 
Zurück