This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of NAD status.

2199. unordered containers are required to have an initial max load factor of 1.0

Section: 21.2.7 [unord.req] Status: NAD Submitter: Alisdair Meredith Opened: 2012-10-09 Last modified: 2016-11-23

Priority: 3

View other active issues in [unord.req].

View all other issues in [unord.req].

View all issues with NAD status.


The default constructor, allocator-aware constructor, and range-based constructors for the unordered containers do not offer a means to control the initial max_load_factor, so the standard mandates the value 1.0. This seems overly restrictive, as there is plenty of research suggesting a value between 0.5 and 1.0 is more often optimal for unique-key containers, and perhaps a slightly higher value might be appropriate for multi-containers.

Rather than guess at the appropriate max_load_factor, it seems reasonable that the standard should allow vendors to pick a value at their discretion, with perhaps a note of advice. It is less clear whether the default value should be implementation-defined or unspecified, given the ease of a user determining this by querying this attribute immediately after construction.

[2013-03-15 Issues Teleconference]

Moved to Open.

Alisdair to provide wording.

Marshall: It seems to me that what you really want is to be able to pass a max load factor in the constructor, but that's a different issue.

Alisdair agrees in principle, but concerned with adding yet more constructors to these classes.

[2016-11-12, Issaquah]

NAD - if someone wants to come back with a paper exploring design alternatives, we can re-open.

Proposed resolution: