Ich habe eine Menge shared_ptr
und möchte darin einen Wert finden:
Es funktioniert, aber nicht effizient - es muss jedes Mal ein temporärer Zeiger neu erstellt werden, wenn versucht wird, einen Wert zu finden.
Gibt es einen anderen Weg dafür?
Sieht aus wie Suchen in einer Gruppe von shared_ptr & lt; QString & gt; hat einige Ideen, die helfen könnten?
(In C ++ 14) Machen Sie Ihren Komparator zu einem transparenten one und definieren Sie zusätzliche Logik für den Vergleich gespeicherter shared_ptr
s mit int
s:
Mit einem single-threaded Programm können Sie den Overhead auf eine einzige globale Zuweisung reduzieren:
%Vor%Haftungsausschluss: Der Code wurde nicht von den Händen des Compilers berührt.
Beim Threading sollten Sie das obige Verfahren als Methode einer Klasse betrachten, mit p
als Mitglied, und dann eine threadlokale Statik dieser Klasse erstellen.
Tags und Links c++ set shared-ptr