Berkeley DB Reference Version 5.3.35

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