Comment renvoyer correctement et efficacement une paire d'une paire nouvellement insérée à une carte?Comment retourner une paire de référence d'une paire nouvellement insérée (à une carte)?
inline pair<unsigned int, T> *createObj(unsigned int UID){
static pair<unsigned int, T> ret;
objList.insert(pair<unsigned int, T>(UID, T()));
if (UID_Counter <= UID)
UID_Counter = UID+1;
ret = make_pair(UID, objList.find(UID)->second);
return &ret;
}
Les rendements ci-dessus un objet à utiliser, mais tout ce que je change dans ret ne change pas dans la « vraie paire » dans la carte ...
Fondamentalement, ce que je veux réaliser est:
- Insérer un nouveau objet Z en carte A
- (-class "enfant") Changer les choses dans e e retourné objet Z
- Dans chaque cycle de mise à jour, itérer à travers les objets carte A et utiliser les données réelles chargées dans objet "A Z" lors de la mise à jour ...
Vos exigences sont très peu claires. Lorsque vous insérez dans une carte, vous obtenez (via un peu d'indirection) une référence à l'objet inséré, donc ce n'est pas un problème. Pouvez-vous décrire vos objectifs un peu plus clairement? –
Mes objectifs sont simplement de retourner une ** paire ** référence à la carte nouvellement insérée ** ** –
Alexander
Je vois. Je pense que Luc t'a déjà trié. Lisez attentivement le manuel de 'std :: map', son interface implique beaucoup de paires dans des endroits inhabituels. –