Remove all the elements from the map m that don't satisfy the predicate p.Keep all the elements that do satisfy p.Explain if the filtering happens in-place, i.e. if m is reused or if a new map is created.
m = {k:v for k, v in m.items() if p(v)}
for k in list(m): if p(m[k]): m.pop(k)
for (auto it = m.begin(); it != m.end();) { if (!p(it->second)) { it = m.erase(it); } else { ++it; } }
real, dimension(:), allocatable :: a a = pack(a,p(a)) ! elemental logical function p(x) real, intent(in) :: x p = x > 0.7 end function p
for k, v := range m { if !p(v) { delete(m, k) } }
import "maps"
maps.DeleteFunc(m, func(k K, v V) bool { return !p(v) })
uses classes;
for i := m.count-1 downto 0 do if not p(m.items[i]) then m.delete(i);
$p = sub { $_[0] }; while ( ($k,$v) = each %m ) { $f{$k} = $v if $p->($v); } %m = %f;
$p = sub { $_[0] }; foreach $k (keys %m) { delete $m{$k} if not $p->( $m{$k} ); }
m.select{|k,v| p(v) }
m.retain(|_, &mut v| p(v));
No security, no password. Other people might choose the same nickname.