J'ai besoin de la structure de données suivantes pour stocker des données:C la carte de carte de vecteurs en tant que membre de l'instance
std::map<int, std::map<unsigned long, std::vector<unsigned long> > > lifetime ;
le map
ci-dessus serait un membre d'instance d'une classe. La question est: ai-je besoin d'initialiser explicitement les conteneurs internes en utilisant new
ou un constructeur quand j'y accède pour la première fois? par exemple:
if (this->lifetime[sm].find(address) == this->lifetime[sm].end()) {
(this->lifetime[sm])[address] = std::vector<unsigned long>() ;
}
je aussi ne semble pas comprendre les détails de la façon dont les vecteurs et les cartes sont initialisés en tant que membres de l'instance et imbriquées et je voudrais donc apprécier une explication de cela aussi.
Donc quelque chose comme 'this-> durée de vie [sm] [adresse] .push_back (current_cycle);' sans initialisation préalable fonctionnerait? – DarthPaghius
@parsoa l'essayer et voir. – xaxxon
@xaxxon Eh bien, il semble que cela ne fonctionne pas et le vecteur doit être initialisé à l'avance, pourriez-vous expliquer pourquoi? – DarthPaghius