Using tuples to iterate a map, like this:
string key, value;
BOOST_FOREACH(tie(key, value), my_map) { ... }
Using boost assign, I can intialize a map like this:
map my_map = map_list_of("key1", "value1")("key2", "value2")("key3", "value3");
And using range adaptors and the pipe("|") operator I can iterate backwards over the values of a map(as an example):
BOOST_FOREACH(string value, my_multimap.equal_range("X") | map_values | reversed) { ... }