ho creato un oggetto per la configurazione del tipo:

codice:
#pragma once
#include "length.h"
#include <map>

using namespace std;
struct tagGeneric
{
	int m_nCursorSelected;
	//focus a cui corrisponde l' elemento della struttura
	int m_nFocus;
	//tipo elemento
	int m_nType;
	//l'id dell' elemento
	int m_nID;
};

struct tagID : tagGeneric{

	//setta l'indirizzo della variabile che ospiterà il valore della variabile
	void SetVarIDAddress(int* pID);
	//legge l'indirizzo della variabile che ospiterà il valore della variabile
	int* GetVarIDAddress();
	//funzione che imposta il comportamento di popolazione e inserimento X,Y e Z quando
	//leggo l'id
	bool bIsFillAutoXYZ(bool bValue, CLength* X, CLength* Y, CLength* Z);
	//indice cursore da impostare quando seleziono
	//il tipo
	
};

struct tagLengthUnit: tagGeneric{
	
	//setta l'indirizzo della variabile che ospiterà il valore della variabile
	void SetVarAddress(CLength* pX);
	//legge l'indirizzo della variabile che ospiterà il valore della variabile
	CLength* GetVarAddress();

	CLength* m_Value;
    //indice cursore da impostare quando seleziono
	//il tipo
	int m_nCursorSelected;
	//focus a cui corrisponde l' elemento della struttura
	int m_nFocus;
	//tipo elemento
	int m_nType;
	//l'id dell' id
	int m_nID;

};

class CConfigureDialog
{
public:
	CConfigureDialog(void);
	~CConfigureDialog(void);


public:
	void DoConfiguration();
	map<UINT, tagGeneric> m_mapElements;
	
	tagLengthUnit X;
	tagLengthUnit Y;
	tagLengthUnit Z;
	tagID ID;
};
il mio problema è che dato un id dovrei estrarre il taggeneric relativo
e dato ad es un m_focus dovrei sempre estrarre il taggeneric corrispondente,
come puo' essere un buon metodo?
devo scorrere tutti gli elementi (che pero' sono pochi) e quando trovo la variabile corrispondente ritornare l'indirizzo dell' oggetto trovato ?
come?
grazie.