2011-01-12 7 views
-1

Wie kann ich eine Kopie einer unordered_map aus einer vorhandenen erstellen? Kann ich den Zuweisungsoperator verwenden oder muss ich ihn einzeln durchlaufen? Auch verwende ich shared_ptr als Wert in der Karte. Muss ich besonders vorsichtig sein, weil es shared_ptr ist?Inhalt eines STL-Containers in einen anderen kopieren

typedef unordered_map<string, shared_ptr<classA>>MAP1; 
MAP1 map1; 
map1["abc"] = make_shared<classA>(); 
MAP2 map2 = map1; ?? //can I use assignment operator?? 

Danke.

+8

Ich antworte normalerweise nicht auf diese Weise, aber hast du es versucht? – GManNickG

+0

Dies ist keine Aufgabe, so viel wie es aussieht. Es ist in der Tat ein Aufruf an den Konstruktor von MAP2 ... aber niemand hier weiß, was "MAP2" ist, also werden wir eine harte Zeit haben, Ihre Frage zu beantworten. Und Sie sollten wirklich keine Großbuchstaben verwenden, sie sind normalerweise für Makros reserviert. –

+0

Ich denke [Sie meinen die Standard Template Library] (http://stackoverflow.com/a/5205571/834176). –

Antwort

1

Ja, Sie können.

In Bezug auf shared_ptr, wenn die kopierten Zeiger auf die gleichen Werte zeigen sollen, dann no. Wenn Sie zwei separate Kopien (Deep Copy) möchten, müssen Sie das Kopieren selbst durchführen.

Verwandte Themen