# Poco

# template < class Key, class Mapped, class Container = std::list < std::pair < Key, Mapped > >, bool CaseSensitive = false >

# class ListMap

Library: Foundation
Package: Hashing
Header: Poco/ListMap.h

## Description

This class implements a multimap in terms of a sequential container. The use for this type of associative container is wherever automatic ordering of elements is not desirable. Naturally, this container will have inferior data retrieval performance and it is not recommended for use with large datasets. The main purpose within POCO is for Internet messages (email message, http headers etc), to prevent autmomatic header entry reordering.

## Member Summary

Member Functions: begin, clear, empty, end, erase, find, insert, operator =, operator [], size, swap

## Types

### ConstIterator

typedef typename Container::const_iterator ConstIterator;

### ConstPointer

typedef const Mapped * ConstPointer;

### ConstReference

typedef const Mapped & ConstReference;

### Iterator

typedef typename Container::iterator Iterator;

### KeyType

typedef Key KeyType;

### MappedType

typedef Mapped MappedType;

### Pointer

typedef Mapped * Pointer;

### Reference

typedef Mapped & Reference;

### SizeType

typedef typename Container::size_type SizeType;

### ValueType

typedef typename Container::value_type ValueType;

## Constructors

### ListMap

ListMap();

Creates an empty ListMap.

### ListMap

ListMap(
std::size_t initialReserve
);

Creates the ListMap with room for initialReserve entries.

## Member Functions

### begin

ConstIterator begin() const;

Returns the beginning of the map.

### begin

Iterator begin();

Returns the beginning of the map.

### clear

void clear();

### empty

bool empty() const;

### end

ConstIterator end() const;

Returns the end of the map.

### end

Iterator end();

Returns the end of the map.

### erase

void erase(
Iterator it
);

### erase

SizeType erase(
const KeyType & key
);

### find

ConstIterator find(
const KeyType & key
) const;

Finds the first occurence of the key and returns iterator pointing to the found entry or iterator pointing to the end if entry is not found.

### find

Iterator find(
const KeyType & key
);

Finds the first occurence of the key and returns iterator pointing to the found entry or iterator pointing to the end if entry is not found.

### insert

Iterator insert(
const ValueType & val
);

Inserts the value into the map. If one or more values already exist, new value is inserted at the end of the block. Thus, all the equal value entries are located sequentially at all times. Returns iterator pointing to the newly inserted value

### operator =

ListMap & operator = (
const ListMap & map
);

Assigns another ListMap.

### operator []

ConstReference operator[] (
const KeyType & key
) const;

### operator []

Reference operator[] (
const KeyType & key
);

### size

std::size_t size() const;

### swap

void swap(
ListMap & map
);

Swaps the ListMap with another one.