I'm trying to print the second member variable of all items in an stl map using a lambda expression
map<int, int> theMap;
for_each(theMap.begin(), theMap.end(),
cout << bind(&pair<int, int>::second, _1) << constant(" "));
but this is not compiling. I essentially want to de-reference the placeholder. Any idea what I'm missing here?
Thanks in advance!
Try:
std::map
will addconst
to its key; this is to prevent messing up the ordering. Your pair should be:Like dirkgently suggests, use the
value_type
to always get the correct type. The verbosity is alleviated with a typedef: