Chapter 6. Db_multimap
Prev |  | Next

## Chapter 6. Db_multimap

This class is the combination of std::multimap and hash_multimap.

By setting database handles as DB_BTREE or DB_HASH type respectively, you will be using an equivalent of std::multimap or hash_multimap respectively. Database(dbp) and environment(penv) handle requirement: The dbp handle must meet the following requirement: 1. Database type should be DB_BTREE or DB_HASH. 2. Either DB_DUP or DB_DUPSORT flag must be set. Note that so far Berkeley DB does not allow DB_DUPSORT be set and the database is storing identical key/data pairs, i.e. we can't store two (1, 2), (1, 2) pairs into a database D with DB_DUPSORT flag set, but only can do so with DB_DUP flag set; But we can store a (1, 2) pair and a (1, 3) pair into D with DB_DUPSORT flag set. So if your data set allows DB_DUPSORT flag, you should set it to gain a lot of performance promotion. 3. No DB_RECNUM flag set. 4. No DB_TRUNCATE specified in database open flags. 5. DB_THREAD must be set if you are sharing the database handle across multiple threads directly, or indirectly by sharing the container object across multiple threads.

#### See Also

db_container db_map

### Class Template Parameters

#### kdt

The key data type.

#### ddt

The data data type. db_multimap stores key/data pairs.

#### value_type_sub

Do not specify anything if ddt type is a class/struct type; Otherwise, specify ElementHolder<ddt> to it.

#### iterator_t

Never specify anything to this type parameter. It is only used internally.

#### Public Members

Member | Description
--- | ---
insert | Range insertion.
erase | Erase elements by key.
equal_range | Find the range within which all keys equal to specified key x.
equal_range_N | Find equal range and number of key/data pairs in the range.
count | Count the number of key/data pairs having specified key x.
upper_bound | Find the least key greater than x.
db_multimap | Constructor.
~db_multimap |
operator= | Container content assignment operator.
swap | Swap content with another multimap container.
operator== | Returns whether the two containers have identical content.
operator!= | Container unequality comparison operator.

#### Group

Dbstl Container Classes

## insert

### Function Details

    void insert(InputIterator first,
        InputIterator last)

Range insertion.

Insert a range [first, last) of key/data pairs into this container.

#### Parameters

##### last

The open boundary of the range.

##### first

The closed boundary of the range.

    void insert(const_iterator &first,
        const_iterator &last)

Range insertion.

Insert a range [first, last) of key/data pairs into this container.

#### Parameters

##### last

The open boundary of the range.

##### first

The closed boundary of the range.

    iterator insert(const value_type &x)

Insert a single key/data pair if the key is not in the container.

#### Parameters

##### x

The key/data pair to insert.

#### Return Value

A pair P, if insert OK, i.e. the inserted key wasn't in the container, P.first will be the iterator sitting on the inserted key/data pair, and P.second is true; otherwise P.first is an invalid iterator and P.second is false.

### Group: Insert Functions

http://www.cplusplus.com/reference/stl/multimap/insert/

### Class

db_multimap

Prev |  | Next
operator!= | Home | erase