ComposeMap< M1, M2 > Class Template Reference

- Main Page
- Modules
- Classes
- Namespaces
- Files
- Related Pages

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
List of all members | Public Types | Public Member Functions | Related Functions
ComposeMap< M1, M2 > Class Template Reference
Map Adaptors

## Detailed Description

### template<typename M1, typename M2>
class lemon::ComposeMap< M1, M2 >

This read-only map returns the composition of two given maps. That is to say, if `m1` is of type `M1` and `m2` is of `M2`, then for

* ComposeMap<M1, M2> cm(m1,m2);
*

`cm[x]` will be equal to `m1[m2[x]]`.

The `Key` type of the map is inherited from `M2` and the `Value` type is from `M1`. `M2::Value` must be convertible to `M1::Key`.

The simplest way of using this map is through the composeMap() function.

See Also
  CombineMap

`#include <lemon/maps.h>`

Inheritance diagram for ComposeMap< M1, M2 >:
[legend]

## Public Types
typedef M2::Key | Key
typedef M1::Value | Value
Public Types inherited from MapBase< M2::Key, M1::Value >
typedef M2::Key | Key
| The key type of the map.
typedef M1::Value | Value
| The value type of the map. (The type of objects associated with the keys).

## Public Member Functions
| ComposeMap (const M1 &m1, const M2 &m2)
| Constructor.
MapTraits< M1 >::ConstReturnValue | operator[] (const Key &k) const

## Related Functions
(Note that these are not member functions.)
template<typename M1 , typename M2 >
ComposeMap< M1, M2 > | composeMap (const M1 &m1, const M2 &m2)
| Returns a `ComposeMap` class. More...