Ich versuche std :: map wie im folgenden Beispiel zu verwenden:
%Vor%Und mein Compiler (VS2010) gibt mir folgende Nachricht:
%Vor%Ich kann nicht verstehen, warum opertor = aufgerufen wird, obwohl ich val in Lambda-Funktion als Referenz überlasse. Können Sie mir erklären, was ich falsch mache?
Sie können std::remove_if
nicht mit einem assoziativen Container verwenden, da dieser Algorithmus die entfernten Elemente mit den folgenden überschreibt: Das Problem hierbei ist, dass die Schlüssel einer Karte konstant sind, um dies zu verhindern Sie (oder der std::remove_if
-Algorithmus) können die interne Sortierung des Containers stören.
Um Elemente aus einer Karte bedingt zu entfernen, tun Sie dies eher:
%Vor%Hier ist ein Live-Beispiel .
Tags und Links c++ c++11 stl visual-c++